[ { "inputs": [ { "internalType": "address", "name": "_treasury", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token0", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token1", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "stable", "type": "bool" }, { "indexed": false, "internalType": "address", "name": "pair", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "allPairsLength", "type": "uint256" } ], "name": "PairCreated", "type": "event" }, { "inputs": [], "name": "acceptAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "allPairs", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "allPairsLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenA", "type": "address" }, { "internalType": "address", "name": "tokenB", "type": "address" }, { "internalType": "bool", "name": "stable", "type": "bool" } ], "name": "createPair", "outputs": [ { "internalType": "address", "name": "pair", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_stable", "type": "bool" } ], "name": "getFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getInitializable", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "bool", "name": "", "type": "bool" } ], "name": "getPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isPair", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftStakersFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nftStakingContract", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pairCodeHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "pendingAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_admin", "type": "address" } ], "name": "setAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_stable", "type": "bool" }, { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "setFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_nftStakingContract", "type": "address" } ], "name": "setNftStakingContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_state", "type": "bool" } ], "name": "setPause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stableFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "treasuryFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "volatileFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ]
60a060405234801561001057600080fd5b5060405161609838038061609883398101604081905261002f91610079565b600080546001600160a81b031916336101000260ff19161790556001600160a01b03166080819052600280546001600160a01b03191690911790556005600355601e6004556100a9565b60006020828403121561008b57600080fd5b81516001600160a01b03811681146100a257600080fd5b9392505050565b608051615fd46100c4600039600061021c0152615fd46000f3fe60806040523480156200001157600080fd5b50600436106200015d5760003560e01c8063704b6c0211620000c7578063bedb86fb1162000086578063bedb86fb14620002e9578063cc32d1761462000300578063e1f76b441462000309578063e5e31b131462000320578063eb13c4cf1462000346578063f851a440146200037f57600080fd5b8063704b6c02146200027b57806382dfdce414620002925780639aab924814620002a9578063a8e9ddeb14620002b3578063b187bd2614620002ca57600080fd5b806340bbd775116200012057806340bbd77514620001f05780635084ed0314620001fa578063574f2ba3146200020457806358308e73146200020d57806361d027b314620002165780636801cc30146200023e57600080fd5b80630e18b681146200016257806314ca639e146200016e5780631e3dd18b14620001985780632678224714620001c85780632838225814620001dc575b600080fd5b6200016c62000398565b005b620001856200017f36600462000a9f565b62000423565b6040519081526020015b60405180910390f35b620001af620001a936600462000ac4565b62000441565b6040516001600160a01b0390911681526020016200018f565b600154620001af906001600160a01b031681565b600254620001af906001600160a01b031681565b6200018560035481565b6200018560045481565b60065462000185565b62000185600481565b620001af7f000000000000000000000000000000000000000000000000000000000000000081565b620001af6200024f36600462000af6565b60056020908152600093845260408085208252928452828420905282529020546001600160a01b031681565b6200016c6200028c36600462000b40565b6200046c565b620001af620002a336600462000af6565b620004ef565b6200018562000835565b6200016c620002c436600462000b40565b62000869565b600054620002d89060ff1681565b60405190151581526020016200018f565b6200016c620002fa36600462000a9f565b620008e6565b62000185600a81565b6200016c6200031a36600462000b5e565b62000954565b620002d86200033136600462000b40565b60076020526000908152604090205460ff1681565b600854600954604080516001600160a01b0393841681529282166020840152600160a01b90910460ff161515908201526060016200018f565b600054620001af9061010090046001600160a01b031681565b6001546001600160a01b03163314620003f85760405162461bcd60e51b815260206004820152601f60248201527f4372757374466163746f72793a204e6f742070656e64696e672061646d696e0060448201526064015b60405180910390fd5b600154600080546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600081156200043457505060035490565b505060045490565b919050565b600681815481106200045257600080fd5b6000918252602090912001546001600160a01b0316905081565b60005461010090046001600160a01b03163314620004cd5760405162461bcd60e51b815260206004820152601760248201527f4372757374466163746f72793a204e6f742041646d696e0000000000000000006044820152606401620003ef565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b0316846001600160a01b0316036200055e5760405162461bcd60e51b815260206004820152602160248201527f4372757374466163746f72793a204944454e544943414c5f41444452455353456044820152605360f81b6064820152608401620003ef565b600080846001600160a01b0316866001600160a01b0316106200058357848662000586565b85855b90925090506001600160a01b038216620005e35760405162461bcd60e51b815260206004820152601a60248201527f4372757374466163746f72793a205a45524f5f414444524553530000000000006044820152606401620003ef565b6001600160a01b0382811660009081526005602090815260408083208585168452825280832088151584529091529020541615620006645760405162461bcd60e51b815260206004820152601960248201527f4372757374466163746f72793a20504149525f455849535453000000000000006044820152606401620003ef565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b16603482015284151560f81b604882015260009060490160408051601f19818403018152908290528051602090910120600980546001600160a01b038087166001600160a01b03198b1515600160a01b0281166001600160a81b031990941693909317179092556008805492881692909116919091179055915081906200070b9062000a80565b8190604051809103906000f59050801580156200072c573d6000803e3d6000fd5b506001600160a01b0384811660008181526005602081815260408084208987168086529083528185208d15158087529084528286208054988a166001600160a01b0319998a16811790915582875294845282862087875284528286208187528452828620805489168617905560068054600181810183557ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f9091018054909a1687179099558587526007855295839020805460ff1916909817909755935481519687529186019290925290840152929650907fc4805696c66d7cf352fc1d6bb633ad5ee82f6cb577c453024b6e0eb8306c6fc99060600160405180910390a35050509392505050565b600060405180602001620008499062000a80565b6020820181038252601f19601f8201166040525080519060200120905090565b60005461010090046001600160a01b03163314620008c45760405162461bcd60e51b815260206004820152601760248201527621b93ab9ba2330b1ba37b93c9d102737ba1030b236b4b760491b6044820152606401620003ef565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b60005461010090046001600160a01b03163314620009415760405162461bcd60e51b815260206004820152601760248201527621b93ab9ba2330b1ba37b93c9d102737ba1030b236b4b760491b6044820152606401620003ef565b6000805460ff1916911515919091179055565b60005461010090046001600160a01b03163314620009a15760405162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b6044820152606401620003ef565b80600003620009e95760405162461bcd60e51b8152602060048201526013602482015272666565206d757374206265206e6f6e7a65726f60681b6044820152606401620003ef565b811562000a3857602881111562000a325760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401620003ef565b60035550565b606481111562000a7a5760405162461bcd60e51b815260206004820152600c60248201526b0cccaca40e8dede40d0d2ced60a31b6044820152606401620003ef565b60045550565b6154138062000b8c83390190565b803580151581146200043c57600080fd5b60006020828403121562000ab257600080fd5b62000abd8262000a8e565b9392505050565b60006020828403121562000ad757600080fd5b5035919050565b80356001600160a01b03811681146200043c57600080fd5b60008060006060848603121562000b0c57600080fd5b62000b178462000ade565b925062000b276020850162000ade565b915062000b376040850162000a8e565b90509250925092565b60006020828403121562000b5357600080fd5b62000abd8262000ade565b6000806040838503121562000b7257600080fd5b62000b7d8362000a8e565b94602093909301359350505056fe6101c0604052600160005560006003556000600d556000600e553480156200002657600080fd5b5033610140819052604080516361d027b360e01b815290516361d027b3916004808201926020929091908290030181865afa1580156200006a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000909190620008d4565b6001600160a01b0316610160816001600160a01b0316815250506000806000336001600160a01b031663eb13c4cf6040518163ffffffff1660e01b8152600401606060405180830381865afa158015620000ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001149190620008f9565b8015156080526001600160a01b0380831661010052831660e052604051929550909350915083908390620001489062000803565b6001600160a01b03928316815291166020820152604001604051809103906000f0801580156200017c573d6000803e3d6000fd5b506001600160a01b0316610120528015620003af57826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620001d0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001fa919081019062000994565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000239573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000263919081019062000994565b6040516020016200027692919062000a4c565b604051602081830303815290604052600190805190602001906200029c92919062000811565b50826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620002dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000306919081019062000994565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000345573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200036f919081019062000994565b6040516020016200038292919062000aa7565b60405160208183030381529060405260029080519060200190620003a892919062000811565b50620005c8565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620003ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000418919081019062000994565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000457573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000481919081019062000994565b6040516020016200049492919062000af8565b60405160208183030381529060405260019080519060200190620004ba92919062000811565b50826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015620004fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262000524919081019062000994565b826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562000563573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200058d919081019062000994565b604051602001620005a092919062000b55565b60405160208183030381529060405260029080519060200190620005c692919062000811565b505b826001600160a01b031663313ce5676040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000609573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200062f919062000b77565b6200063c90600a62000cb1565b6101808181525050816001600160a01b031663313ce5676040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000685573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ab919062000b77565b620006b890600a62000cb1565b6101a0526040805160608101825242815260006020820181815282840182815260078054600180820183559190945293517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860039094029384015590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c689830155517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a9091015590517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f916200078e9162000cfe565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160408051601f19818403018152919052805160209091012060a05250504660c0525062000da1565b61051b8062004ef883390190565b8280546200081f9062000cc2565b90600052602060002090601f0160209004810192826200084357600085556200088e565b82601f106200085e57805160ff19168380011785556200088e565b828001600101855582156200088e579182015b828111156200088e57825182559160200191906001019062000871565b506200089c929150620008a0565b5090565b5b808211156200089c5760008155600101620008a1565b80516001600160a01b0381168114620008cf57600080fd5b919050565b600060208284031215620008e757600080fd5b620008f282620008b7565b9392505050565b6000806000606084860312156200090f57600080fd5b6200091a84620008b7565b92506200092a60208501620008b7565b9150604084015180151581146200094057600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200097e57818101518382015260200162000964565b838111156200098e576000848401525b50505050565b600060208284031215620009a757600080fd5b81516001600160401b0380821115620009bf57600080fd5b818401915084601f830112620009d457600080fd5b815181811115620009e957620009e96200094b565b604051601f8201601f19908116603f0116810190838211818310171562000a145762000a146200094b565b8160405282815287602084870101111562000a2e57600080fd5b62000a4183602083016020880162000961565b979650505050505050565b6e029ba30b13632ab189020a6a690169608d1b81526000835162000a7881600f85016020880162000961565b602f60f81b600f91840191820152835162000a9b81601084016020880162000961565b01601001949350505050565b6473414d4d2d60d81b81526000835162000ac981600585016020880162000961565b602f60f81b600591840191820152835162000aec81600684016020880162000961565b01600601949350505050565b7002b37b630ba34b632ab189020a6a690169607d1b81526000835162000b2681601185016020880162000961565b602f60f81b601191840191820152835162000b4981601284016020880162000961565b01601201949350505050565b6476414d4d2d60d81b81526000835162000ac981600585016020880162000961565b60006020828403121562000b8a57600080fd5b815160ff81168114620008f257600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000bf357816000190482111562000bd75762000bd762000b9c565b8085161562000be557918102915b93841c939080029062000bb7565b509250929050565b60008262000c0c5750600162000cab565b8162000c1b5750600062000cab565b816001811462000c34576002811462000c3f5762000c5f565b600191505062000cab565b60ff84111562000c535762000c5362000b9c565b50506001821b62000cab565b5060208310610133831016604e8410600b841016171562000c84575081810a62000cab565b62000c90838362000bb2565b806000190482111562000ca75762000ca762000b9c565b0290505b92915050565b6000620008f260ff84168362000bfb565b600181811c9082168062000cd757607f821691505b60208210810362000cf857634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168062000d1b57607f831692505b6020808410820362000d3b57634e487b7160e01b86526022600452602486fd5b81801562000d52576001811462000d645762000d93565b60ff1986168952848901965062000d93565b60008a81526020902060005b8681101562000d8b5781548b82015290850190830162000d70565b505084890196505b509498975050505050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051613f6f62000f896000396000818161050c01528181612c4401528181612f0101528181612fc301526130ce0152600081816104e901528181612c0301528181612ec20152818161300501526130a8015260008181610620015281816126f30152612a6d0152600081816108340152818161092c01528181611ee0015281816124f30152818161258f015281816126420152818161286d0152818161290901526129bc01526000818161071b01528181611fe10152818161277b0152612af5015260008181610596015281816107700152818161086c01528181610ae501528181610dd8015281816116d70152818161190601528181611d7a0152818161241101528181612a4b01528181612a9f0152612ad301526000818161036b0152818161056e0152818161074b01528181610ac401528181610db701528181611641015281816118e401528181611d5801528181612389015281816126d1015281816127250152818161275901528181612f4301528181612f8a0152818161306f0152613112015260006106f40152600081816104bb01526120e00152600081816104240152818161053e01528181611eb501528181612bdb0152612e8e0152613f6f6000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c80637ecebe0011610182578063bda39cad116100e9578063d21220a7116100a2578063dd62ed3e1161007c578063dd62ed3e146108a9578063ebeb31db146108d4578063f140a35a146108dc578063fff6cae9146108ef57600080fd5b8063d21220a714610867578063d294f0931461088e578063d505accf1461089657600080fd5b8063bda39cad14610814578063bf944dbc1461081d578063c245febc14610826578063c45a01551461082f578063c5700a0214610856578063ced72f871461085f57600080fd5b80639d63848a1161013b5780639d63848a1461073d5780639e8cc04b1461079b5780639f767c88146107ae578063a1ac4d13146107ce578063a9059cbb146107ee578063bc25cf771461080157600080fd5b80637ecebe001461067557806389afcb44146106955780638a7b8cf2146106bd57806395d89b41146106e75780639a8a0592146106ef5780639af1d35a1461071657600080fd5b806330adf81f116102415780634d5a9f8a116101fa5780635a76f25e116101d45780635a76f25e1461061257806361d027b31461061b5780636a6278421461064257806370a082311461065557600080fd5b80634d5a9f8a146105cc578063517b3f82146105ec5780635881c475146105ff57600080fd5b806330adf81f1461046c578063313ce5671461049357806332c0defd146104ad5780633644e515146104b6578063392f37e9146104dd578063443cb4bc146105c357600080fd5b806318160ddd1161029357806318160ddd146103c55780631df8c717146103dc578063205aabf1146103ff57806322be3de11461041f57806323b872dd14610446578063252c09d71461045957600080fd5b8063022c0d9f146102db57806306fdde03146102f05780630902f1ac1461030e578063095ea7b3146103435780630dfe16811461036657806313345fe1146103a5575b600080fd5b6102ee6102e9366004613a2d565b6108f7565b005b6102f8610fec565b6040516103059190613af3565b60405180910390f35b600854600954600a54604080516001600160701b03948516815293909216602084015263ffffffff1690820152606001610305565b610356610351366004613b26565b61107a565b6040519015158152602001610305565b61038d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610305565b6103b86103b3366004613b52565b611146565b6040516103059190613b8d565b6103ce60035481565b604051908152602001610305565b6103e461134e565b60408051938452602084019290925290820152606001610305565b6103ce61040d366004613bd1565b60106020526000908152604090205481565b6103567f000000000000000000000000000000000000000000000000000000000000000081565b610356610454366004613bee565b6113b6565b6103e4610467366004613c2f565b6114ce565b6103ce7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61049b601281565b60405160ff9091168152602001610305565b6103ce600d5481565b6103ce7f000000000000000000000000000000000000000000000000000000000000000081565b600854600954604080517f000000000000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060208201529081019290925260608201527f0000000000000000000000000000000000000000000000000000000000000000151560808201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660a08301527f00000000000000000000000000000000000000000000000000000000000000001660c082015260e001610305565b6103ce60085481565b6103ce6105da366004613bd1565b60116020526000908152604090205481565b6103ce6105fa366004613b26565b611501565b6103b861060d366004613c48565b6115e9565b6103ce60095481565b61038d7f000000000000000000000000000000000000000000000000000000000000000081565b6103ce610650366004613bd1565b6115f8565b6103ce610663366004613bd1565b60056020526000908152604090205481565b6103ce610683366004613bd1565b60066020526000908152604090205481565b6106a86106a3366004613bd1565b611899565b60408051928352602083019190915201610305565b6106c5611c09565b6040805182518152602080840151908201529181015190820152606001610305565b6102f8611c89565b6103ce7f000000000000000000000000000000000000000000000000000000000000000081565b61038d7f000000000000000000000000000000000000000000000000000000000000000081565b604080516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f000000000000000000000000000000000000000000000000000000000000000016602082015201610305565b6103ce6107a9366004613c48565b611c96565b6103ce6107bc366004613bd1565b600f6020526000908152604090205481565b6103ce6107dc366004613bd1565b60126020526000908152604090205481565b6103566107fc366004613b26565b611d03565b6102ee61080f366004613bd1565b611d19565b6103ce600e5481565b6103ce600b5481565b6103ce600c5481565b61038d7f000000000000000000000000000000000000000000000000000000000000000081565b6103ce600a5481565b6103ce611ea6565b61038d7f000000000000000000000000000000000000000000000000000000000000000081565b6106a8611f58565b6102ee6108a4366004613c7d565b61207f565b6103ce6108b7366004613cf4565b600460209081526000928352604080842090915290825290205481565b6007546103ce565b6103ce6108ea366004613d2d565b6122ff565b6102ee612349565b6000546001146109225760405162461bcd60e51b815260040161091990613d52565b60405180910390fd5b60026000819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b187bd266040518163ffffffff1660e01b8152600401602060405180830381865afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190613d7a565b156109ec5760405162461bcd60e51b815260206004820152601060248201526f4372757374506169723a20504155534560801b6044820152606401610919565b60008511806109fb5750600084115b610a555760405162461bcd60e51b815260206004820152602560248201527f4372757374506169723a20494e53554646494349454e545f4f55545055545f416044820152641353d5539560da1b6064820152608401610919565b6008546009548187108015610a6957508086105b610abf5760405162461bcd60e51b815260206004820152602160248201527f4372757374506169723a20494e53554646494349454e545f4c495155494449546044820152605960f81b6064820152608401610919565b6000807f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0389811690831614801590610b325750806001600160a01b0316896001600160a01b031614155b610b765760405162461bcd60e51b81526020600482015260156024820152744372757374506169723a20494e56414c49445f544f60581b6044820152606401610919565b8a15610b9057610b906001600160a01b0383168a8d612496565b8915610baa57610baa6001600160a01b0382168a8c612496565b8615610c1757604051639a7bff7960e01b81526001600160a01b038a1690639a7bff7990610be49033908f908f908e908e90600401613d9c565b600060405180830381600087803b158015610bfe57600080fd5b505af1158015610c12573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610c5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7f9190613de8565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cea9190613de8565b9250505060008985610cfc9190613e17565b8311610d09576000610d1d565b610d138a86613e17565b610d1d9084613e17565b90506000610d2b8a86613e17565b8311610d38576000610d4c565b610d428a86613e17565b610d4c9084613e17565b90506000821180610d5d5750600081115b610db55760405162461bcd60e51b8152602060048201526024808201527f4372757374506169723a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b6064820152608401610919565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000008315610e2457610e24612710610e0b611ea6565b610e159087613e2e565b610e1f9190613e4d565b6124ed565b8215610e5157610e51612710610e38611ea6565b610e429086613e2e565b610e4c9190613e4d565b612867565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb99190613de8565b6040516370a0823160e01b81523060048201529096506001600160a01b038216906370a0823190602401602060405180830381865afa158015610f00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f249190613de8565b9450610f308888612bd7565b610f3a8787612bd7565b1015610f775760405162461bcd60e51b815260206004820152600c60248201526b4372757374506169723a204b60a01b6044820152606401610919565b5050610f8584848888612d23565b60408051838152602081018390529081018c9052606081018b90526001600160a01b038a169033907fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229060800160405180910390a350506001600055505050505050505050565b60018054610ff990613e6f565b80601f016020809104026020016040519081016040528092919081815260200182805461102590613e6f565b80156110725780601f1061104757610100808354040283529160200191611072565b820191906000526020600020905b81548152906001019060200180831161105557829003601f168201915b505050505081565b60006001600160a01b0383166110e15760405162461bcd60e51b815260206004820152602660248201527f4372757374506169723a20417070726f766520746f20746865207a65726f206160448201526564647265737360d01b6064820152608401610919565b3360008181526004602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b606060008367ffffffffffffffff81111561116357611163613ea3565b60405190808252806020026020018201604052801561118c578160200160208202803683370190505b506007549091506000906111a290600190613e17565b905060006111b08587613e2e565b6111ba9083613e17565b90506000805b8383101561133e576111d28784613eb9565b91506000600784815481106111e9576111e9613ed1565b9060005260206000209060030201600001546007848154811061120e5761120e613ed1565b90600052602060002090600302016000015461122a9190613e17565b90506000816007868154811061124257611242613ed1565b9060005260206000209060030201600101546007868154811061126757611267613ed1565b9060005260206000209060030201600101546112839190613e17565b61128d9190613e4d565b9050600082600787815481106112a5576112a5613ed1565b906000526020600020906003020160020154600787815481106112ca576112ca613ed1565b9060005260206000209060030201600201546112e69190613e17565b6112f09190613e4d565b90506112fe8c8e8484612e8a565b88858151811061131057611310613ed1565b6020908102919091010152611326846001613eb9565b935050505086836113379190613eb9565b92506111c0565b509293505050505b949350505050565b600b54600c54426000808061136c600854600954600a549192909190565b63ffffffff1692506001600160701b031692506001600160701b031692508381146113ae57600061139d8286613e17565b848102979097019683029590950194505b505050909192565b6001600160a01b0383166000818152600460209081526040808320338085529252822054919290919082148015906113f057506000198114155b156114b5578381101561144f5760405162461bcd60e51b815260206004820152602160248201527f4372757374506169723a20496e73756666696369656e7420616c6c6f77616e636044820152606560f81b6064820152608401610919565b6001600160a01b03868116600081815260046020908152604080832094871680845294825291829020888603908190559151828152919392917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505b6114c086868661317f565b6001925050505b9392505050565b600781815481106114de57600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b60008061150c611c09565b905060008061151961134e565b50845191935091504203611581576007805461153790600290613e17565b8154811061154757611547613ed1565b9060005260206000209060030201604051806060016040529081600082015481526020016001820154815260200160028201548152505092505b82516000906115909042613e17565b90506000818560200151856115a59190613e17565b6115af9190613e4d565b90506000828660400151856115c49190613e17565b6115ce9190613e4d565b90506115dc888a8484612e8a565b9998505050505050505050565b60606113468484846001611146565b6000805460011461161b5760405162461bcd60e51b815260040161091990613d52565b600260009081556008546009546040516370a0823160e01b8152306004820152919290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b49190613de8565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561171e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117429190613de8565b905060006117508584613e17565b9050600061175e8584613e17565b60035490915060008190036117a0576103e861178261177d8486613e2e565b613304565b61178c9190613e17565b975061179b60006103e8613374565b6117d5565b6117d2876117ae8386613e2e565b6117b89190613e4d565b876117c38486613e2e565b6117cd9190613e4d565b613407565b97505b600088116118365760405162461bcd60e51b815260206004820152602860248201527f4372757374506169723a20494e53554646494349454e545f4c495155494449546044820152671657d3525395115160c21b6064820152608401610919565b6118408989613374565b61184c85858989612d23565b604080518481526020810184905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a250506001600055509395945050505050565b6000806000546001146118be5760405162461bcd60e51b815260040161091990613d52565b600260009081556008546009546040516370a0823160e01b8152306004820152919290917f0000000000000000000000000000000000000000000000000000000000000000917f0000000000000000000000000000000000000000000000000000000000000000916001600160a01b038416906370a0823190602401602060405180830381865afa158015611957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197b9190613de8565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156119c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e99190613de8565b306000908152600560205260409020546003549192509080611a0b8584613e2e565b611a159190613e4d565b995080611a228484613e2e565b611a2c9190613e4d565b985060008a118015611a3e5750600089115b611a9b5760405162461bcd60e51b815260206004820152602860248201527f4372757374506169723a20494e53554646494349454e545f4c495155494449546044820152671657d0955493915160c21b6064820152608401610919565b611aa5308361341d565b611ab96001600160a01b0387168c8c612496565b611acd6001600160a01b0386168c8b612496565b6040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa158015611b11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b359190613de8565b6040516370a0823160e01b81523060048201529094506001600160a01b038616906370a0823190602401602060405180830381865afa158015611b7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba09190613de8565b9250611bae84848a8a612d23565b604080518b8152602081018b90526001600160a01b038d169133917fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496910160405180910390a350505050505050506001600081905550915091565b611c2d60405180606001604052806000815260200160008152602001600081525090565b60078054611c3d90600190613e17565b81548110611c4d57611c4d613ed1565b90600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050905090565b60028054610ff990613e6f565b600080611ca68585856001611146565b90506000805b8251811015611cee57828181518110611cc757611cc7613ed1565b602002602001015182611cda9190613eb9565b915080611ce681613ee7565b915050611cac565b50611cf98482613e4d565b9695505050505050565b6000611d1033848461317f565b50600192915050565b600054600114611d3b5760405162461bcd60e51b815260040161091990613d52565b60026000556008546040516370a0823160e01b81523060048201527f0000000000000000000000000000000000000000000000000000000000000000917f000000000000000000000000000000000000000000000000000000000000000091611e109185916001600160a01b038616906370a0823190602401602060405180830381865afa158015611dd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df59190613de8565b611dff9190613e17565b6001600160a01b0385169190612496565b6009546040516370a0823160e01b8152306004820152611e9c9185916001600160a01b038516906370a0823190602401602060405180830381865afa158015611e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e819190613de8565b611e8b9190613e17565b6001600160a01b0384169190612496565b5050600160005550565b604051630a6531cf60e11b81527f0000000000000000000000000000000000000000000000000000000000000000151560048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906314ca639e90602401602060405180830381865afa158015611f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f539190613de8565b905090565b600080611f64336134a8565b50503360009081526011602090815260408083205460129092529091205481151580611f905750600081115b1561207b573360008181526011602090815260408083208390556012909152808220919091555163299e7ae760e11b8152600481019190915260248101839052604481018290526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063533cf5ce90606401600060405180830381600087803b15801561202557600080fd5b505af1158015612039573d6000803e3d6000fd5b505060408051858152602081018590523393508392507f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e94645910160405180910390a35b9091565b428410156120c45760405162461bcd60e51b815260206004820152601260248201527110dc9d5cdd14185a5c8e881156141254915160721b6044820152606401610919565b6001600160a01b038716600090815260066020526040812080547f0000000000000000000000000000000000000000000000000000000000000000917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b918761213283613ee7565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e001604051602081830303815290604052805190602001206040516020016121ab92919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015612216573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381161580159061224c5750886001600160a01b0316816001600160a01b0316145b6122985760405162461bcd60e51b815260206004820152601c60248201527f4372757374506169723a20494e56414c49445f5349474e4154555245000000006044820152606401610919565b6001600160a01b038981166000818152600460209081526040808320948d16808452948252918290208b905590518a81527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050505050505050565b60085460095460009190612710612314611ea6565b61231e9087613e2e565b6123289190613e4d565b6123329086613e17565b945061234085858484612e8a565b95945050505050565b60005460011461236b5760405162461bcd60e51b815260040161091990613d52565b60026000556040516370a0823160e01b815230600482015261248f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156123d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123fc9190613de8565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612460573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124849190613de8565b600854600954612d23565b6001600055565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526124e8908490613614565b505050565b600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc32d1766040518163ffffffff1660e01b8152600401602060405180830381865afa15801561254f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125739190613de8565b61257d9084613e2e565b6125879190613e4d565b9050600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166358308e736040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260f9190613de8565b6126199085613e2e565b6126239190613e4d565b90506000816126328486613e17565b61263c9190613e17565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663283822586040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c29190613f00565b90506127186001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000086612496565b61274c6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168285612496565b6127a06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084612496565b6003546000906127be6d04ee2d6d415b85acef810000000085613e2e565b6127c89190613e4d565b905080156127e85780600d60008282546127e29190613eb9565b90915550505b604080518681526000602082015233917ffd26d3e0e8324438b2b556a62f87e2e5864535089e691e5119466433de1ebc61910160405180910390a2604080518481526000602082015233917f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a860291015b60405180910390a2505050505050565b600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663cc32d1766040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ed9190613de8565b6128f79084613e2e565b6129019190613e4d565b9050600060647f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166358308e736040518163ffffffff1660e01b8152600401602060405180830381865afa158015612965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129899190613de8565b6129939085613e2e565b61299d9190613e4d565b90506000816129ac8486613e17565b6129b69190613e17565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663283822586040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3c9190613f00565b9050612a926001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000086612496565b612ac66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168285612496565b612b1a6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000167f000000000000000000000000000000000000000000000000000000000000000084612496565b600354600090612b386d04ee2d6d415b85acef810000000085613e2e565b612b429190613e4d565b90508015612b625780600e6000828254612b5c9190613eb9565b90915550505b60408051600081526020810187905233917ffd26d3e0e8324438b2b556a62f87e2e5864535089e691e5119466433de1ebc61910160405180910390a260408051600081526020810185905233917f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a86029101612857565b60007f000000000000000000000000000000000000000000000000000000000000000015612d125760007f0000000000000000000000000000000000000000000000000000000000000000612c3485670de0b6b3a7640000613e2e565b612c3e9190613e4d565b905060007f0000000000000000000000000000000000000000000000000000000000000000612c7585670de0b6b3a7640000613e2e565b612c7f9190613e4d565b90506000670de0b6b3a7640000612c968385613e2e565b612ca09190613e4d565b90506000670de0b6b3a7640000612cb78480613e2e565b612cc19190613e4d565b670de0b6b3a7640000612cd48680613e2e565b612cde9190613e4d565b612ce89190613eb9565b9050670de0b6b3a7640000612cfd8284613e2e565b612d079190613e4d565b945050505050611140565b612d1c8284613e2e565b9050611140565b600a544290600090612d359083613e17565b9050600081118015612d4657508315155b8015612d5157508215155b15612d6b57600b8054858302019055600c80548483020190555b6000612d75611c09565b8051909150612d849084613e17565b9150610708821115612e395760408051606081018252848152600b5460208201908152600c549282019283526007805460018101825560009190915291517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688600390930292830155517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68982015590517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68a909101555b60088790556009869055600a83905560408051888152602081018890527fcf2aa50876cdfbb541206f89af0ee78d44a2abf8d328e37fa4917f982149848a910160405180910390a150505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000001561310d576000612ebe8484612bd7565b90507f0000000000000000000000000000000000000000000000000000000000000000612ef385670de0b6b3a7640000613e2e565b612efd9190613e4d565b93507f0000000000000000000000000000000000000000000000000000000000000000612f3284670de0b6b3a7640000613e2e565b612f3c9190613e4d565b92506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614612f81578486612f84565b85855b915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614613003577f0000000000000000000000000000000000000000000000000000000000000000612ff489670de0b6b3a7640000613e2e565b612ffe9190613e4d565b613040565b7f000000000000000000000000000000000000000000000000000000000000000061303689670de0b6b3a7640000613e2e565b6130409190613e4d565b97506000613058613051848b613eb9565b85846136e6565b6130629083613e17565b9050670de0b6b3a76400007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316896001600160a01b0316146130cc577f00000000000000000000000000000000000000000000000000000000000000006130ee565b7f00000000000000000000000000000000000000000000000000000000000000005b6130f89083613e2e565b6131029190613e4d565b945050505050611346565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614613150578385613153565b84845b90925090506131628783613eb9565b61316c8289613e2e565b6131769190613e4d565b92505050611346565b6001600160a01b0382166131e55760405162461bcd60e51b815260206004820152602760248201527f4372757374506169723a205472616e7366657220746f20746865207a65726f206044820152666164647265737360c81b6064820152608401610919565b6131ee836134a8565b6131f7826134a8565b6001600160a01b038316600090815260056020526040902054818110156132735760405162461bcd60e51b815260206004820152602a60248201527f4372757374506169723a205472616e7366657220616d6f756e7420657863656560448201526964732062616c616e636560b01b6064820152608401610919565b6001600160a01b038085166000908152600560205260408082208585039055918516815290812080548492906132aa908490613eb9565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516132f691815260200190565b60405180910390a350505050565b60006003821115613365575080600061331e600283613e4d565b613329906001613eb9565b90505b8181101561335f579050806002816133448186613e4d565b61334e9190613eb9565b6133589190613e4d565b905061332c565b50919050565b811561336f575060015b919050565b61337d826134a8565b806003600082825461338f9190613eb9565b90915550506001600160a01b038216600090815260056020526040812080548392906133bc908490613eb9565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020015b60405180910390a35050565b600081831061341657816114c7565b5090919050565b613426826134a8565b80600360008282546134389190613e17565b90915550506001600160a01b03821660009081526005602052604081208054839290613465908490613e17565b90915550506040518181526000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906020016133fb565b6001600160a01b03811660009081526005602052604090205480156135e2576001600160a01b0382166000908152600f60209081526040808320805460108085529285208054600d54600e5494819055949095528290559361350a8584613e17565b905060006135188584613e17565b905081156135795760006d04ee2d6d415b85acef810000000061353b848a613e2e565b6135459190613e4d565b6001600160a01b038a16600090815260116020526040812080549293508392909190613572908490613eb9565b9091555050505b80156135d85760006d04ee2d6d415b85acef810000000061359a838a613e2e565b6135a49190613e4d565b6001600160a01b038a166000908152601260205260408120805492935083929091906135d1908490613eb9565b9091555050505b5050505050505050565b600d546001600160a01b0383166000908152600f6020908152604080832093909355600e546010909152919020555050565b6000613669826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166137c89092919063ffffffff16565b8051909150156124e857808060200190518101906136879190613d7a565b6124e85760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610919565b6000805b60ff8110156137bf57826000613700878361388e565b905085811015613750576000613716888761392b565b6137208389613e17565b61373290670de0b6b3a7640000613e2e565b61373c9190613e4d565b90506137488187613eb9565b955050613792565b600061375c888761392b565b6137668884613e17565b61377890670de0b6b3a7640000613e2e565b6137829190613e4d565b905061378e8187613e17565b9550505b61379e85836001613993565b156137aa5750506137bf565b505080806137b790613ee7565b9150506136ea565b50909392505050565b60606001600160a01b0384163b6138215760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610919565b600080856001600160a01b03168560405161383c9190613f1d565b6000604051808303816000865af19150503d8060008114613879576040519150601f19603f3d011682016040523d82523d6000602084013e61387e565b606091505b5091509150611cf98282866139dc565b6000670de0b6b3a7640000828185816138a78280613e2e565b6138b19190613e4d565b6138bb9190613e2e565b6138c59190613e4d565b6138cf9190613e2e565b6138d99190613e4d565b670de0b6b3a76400008084816138ef8280613e2e565b6138f99190613e4d565b6139039190613e2e565b61390d9190613e4d565b6139179086613e2e565b6139219190613e4d565b6114c79190613eb9565b6000670de0b6b3a764000083816139428280613e2e565b61394c9190613e4d565b6139569190613e2e565b6139609190613e4d565b670de0b6b3a7640000806139748580613e2e565b61397e9190613e4d565b613989866003613e2e565b6139179190613e2e565b6000828411156139ba57816139a88486613e17565b116139b5575060016114c7565b6139d2565b816139c58585613e17565b116139d2575060016114c7565b5060009392505050565b606083156139eb5750816114c7565b8251156139fb5782518084602001fd5b8160405162461bcd60e51b81526004016109199190613af3565b6001600160a01b0381168114613a2a57600080fd5b50565b600080600080600060808688031215613a4557600080fd5b85359450602086013593506040860135613a5e81613a15565b9250606086013567ffffffffffffffff80821115613a7b57600080fd5b818801915088601f830112613a8f57600080fd5b813581811115613a9e57600080fd5b896020828501011115613ab057600080fd5b9699959850939650602001949392505050565b60005b83811015613ade578181015183820152602001613ac6565b83811115613aed576000848401525b50505050565b6020815260008251806020840152613b12816040850160208701613ac3565b601f01601f19169190910160400192915050565b60008060408385031215613b3957600080fd5b8235613b4481613a15565b946020939093013593505050565b60008060008060808587031215613b6857600080fd5b8435613b7381613a15565b966020860135965060408601359560600135945092505050565b6020808252825182820181905260009190848201906040850190845b81811015613bc557835183529284019291840191600101613ba9565b50909695505050505050565b600060208284031215613be357600080fd5b81356114c781613a15565b600080600060608486031215613c0357600080fd5b8335613c0e81613a15565b92506020840135613c1e81613a15565b929592945050506040919091013590565b600060208284031215613c4157600080fd5b5035919050565b600080600060608486031215613c5d57600080fd5b8335613c6881613a15565b95602085013595506040909401359392505050565b600080600080600080600060e0888a031215613c9857600080fd5b8735613ca381613a15565b96506020880135613cb381613a15565b95506040880135945060608801359350608088013560ff81168114613cd757600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215613d0757600080fd5b8235613d1281613a15565b91506020830135613d2281613a15565b809150509250929050565b60008060408385031215613d4057600080fd5b823591506020830135613d2281613a15565b6020808252600e908201526d1499595b9d1c985b9d0818d85b1b60921b604082015260600190565b600060208284031215613d8c57600080fd5b815180151581146114c757600080fd5b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600060208284031215613dfa57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082821015613e2957613e29613e01565b500390565b6000816000190483118215151615613e4857613e48613e01565b500290565b600082613e6a57634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680613e8357607f821691505b60208210810361335f57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60008219821115613ecc57613ecc613e01565b500190565b634e487b7160e01b600052603260045260246000fd5b600060018201613ef957613ef9613e01565b5060010190565b600060208284031215613f1257600080fd5b81516114c781613a15565b60008251613f2f818460208701613ac3565b919091019291505056fea2646970667358221220faf2d2449edf62b7cf7c63be8196a1bb99ee8182885ccf442afe11b2bc846e8e64736f6c634300080d003360e060405234801561001057600080fd5b5060405161051b38038061051b83398101604081905261002f91610066565b336080526001600160a01b0391821660a0521660c052610099565b80516001600160a01b038116811461006157600080fd5b919050565b6000806040838503121561007957600080fd5b6100828361004a565b91506100906020840161004a565b90509250929050565b60805160a05160c0516104566100c5600039600060fa0152600060c001526000605001526104566000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063533cf5ce14610030575b600080fd5b61004361003e36600461033e565b610045565b005b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146100ad5760405162461bcd60e51b81526020600482015260086024820152672737ba103830b4b960c11b60448201526064015b60405180910390fd5b81156100e7576100e76001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484610126565b8015610121576101216001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483610126565b505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610121928692916000916101b6918516908490610233565b80519091501561012157808060200190518101906101d4919061037f565b6101215760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016100a4565b60606001600160a01b0384163b61028c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016100a4565b600080856001600160a01b0316856040516102a791906103d1565b6000604051808303816000865af19150503d80600081146102e4576040519150601f19603f3d011682016040523d82523d6000602084013e6102e9565b606091505b50915091506102f9828286610305565b925050505b9392505050565b606083156103145750816102fe565b8251156103245782518084602001fd5b8160405162461bcd60e51b81526004016100a491906103ed565b60008060006060848603121561035357600080fd5b83356001600160a01b038116811461036a57600080fd5b95602085013595506040909401359392505050565b60006020828403121561039157600080fd5b815180151581146102fe57600080fd5b60005b838110156103bc5781810151838201526020016103a4565b838111156103cb576000848401525b50505050565b600082516103e38184602087016103a1565b9190910192915050565b602081526000825180602084015261040c8160408501602087016103a1565b601f01601f1916919091016040019291505056fea2646970667358221220843d2e8ae84677f571d40ca2fbb1a04f8240599a35bf64688cc3afef378d56ad64736f6c634300080d0033a2646970667358221220b55e76508c96c1eba1d10a032a27b4b0c4dc28bcb5b512bf75741380bff0cfdc64736f6c634300080d00330000000000000000000000008a5f992c9cc0e4c77ef0746a25b61117a3f34741