Deployed Bytecode Bytecode Opcodes Copy
0x608060405260043610610288575f3560e01c80636ea2fa5611610152578063ca0454aa116100ca578063d7b96d4e1161007e578063ee99205c11610063578063ee99205c146109d2578063f98adc0b14610a05578063ffa1ad7414610a385761028f565b8063d7b96d4e1461096c578063d86b75c71461099f5761028f565b8063cd5373c0116100af578063cd5373c0146108d4578063d00cad0d14610907578063d1bb06e4146109395761028f565b8063ca0454aa1461086e578063cd0e315f146108a15761028f565b80638b8e067111610121578063a9d424e211610106578063a9d424e21461080d578063a9e9984a14610820578063aaf5eb68146108535761028f565b80638b8e0671146107e4578063a33014af146107f75761028f565b80636ea2fa56146107565780637023b1511461078957806384b2a44c146107bc57806384ed4ace146107d15761028f565b8063400b6cdc116102005780635c3640ec116101b45780635ca7542f116101995780635ca7542f1461068c5780635fb22c45146106f057806361d027b3146107235761028f565b80635c3640ec146106185780635c975abb1461064b5761028f565b80634ee56d68116101e55780634ee56d681461056c578063526a9a931461059f57806356f43352146105d25761028f565b8063400b6cdc146105065780634776b459146105395761028f565b80632aa629751161025757806335d1c5ad1161023c57806335d1c5ad146104815780633c83e14c146104b45780633efb10ea146104d35761028f565b80632aa62975146103c557806331de7d15146103f85761028f565b806317fcb39b146102ce578063260e4b221461031e578063280c8f39146103515780632a373068146103925761028f565b3661028f57005b7f000000000000000000000000d80f344c62f3907643988654dafbafc32fcd0f71365f80375f5f365f845af43d5f5f3e8080156102ca573d5ff35b3d5ffd5b3480156102d9575f5ffd5b506103017f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610329575f5ffd5b506103017f000000000000000000000000d5a550305b80cec05093b42cc5f23403d514dabc81565b34801561035c575f5ffd5b506103847f0000000000000000000000000000000000000000000000000000000000001d4c81565b604051908152602001610315565b34801561039d575f5ffd5b506103847f0000000000000000000000000000000000000000000000000000000000000e2781565b3480156103d0575f5ffd5b506103017f0000000000000000000000001e1577ba4dc74007ed6e8fb3d3ce2ce5477f531d81565b348015610403575f5ffd5b5061041761041236600461510b565b610a8d565b60405161031591905f60c0820190506001600160a01b0383511682526001600160a01b0360208401511660208301526001600160a01b036040840151166040830152606083015160608301526080830151608083015261ffff60a08401511660a083015292915050565b34801561048c575f5ffd5b506103847f0000000000000000000000000000000000000000000000000000000000001b5881565b3480156104bf575f5ffd5b506104176104ce36600461514e565b610c59565b3480156104de575f5ffd5b506103847fc67689164119bbe18c3364dfbf1d1ca9c237139bf1fb491a8cf3ce51bea0e03b81565b348015610511575f5ffd5b506103017f0000000000000000000000008127e655795aefb989e770617fe4bd29a9b0d94a81565b348015610544575f5ffd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b348015610577575f5ffd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b3480156105aa575f5ffd5b506103017f00000000000000000000000065f7a87c6e055f55edd81fc01eee506f66acd4ab81565b3480156105dd575f5ffd5b506106057f000000000000000000000000000000000000000000000000000000000000006481565b60405161ffff9091168152602001610315565b348015610623575f5ffd5b506103017f00000000000000000000000065f7a87c6e055f55edd81fc01eee506f66acd4ab81565b348015610656575f5ffd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff166040519015158152602001610315565b348015610697575f5ffd5b506106bf7f030000000000000000000000000000000000000000000000000000000000000081565b6040517fff000000000000000000000000000000000000000000000000000000000000009091168152602001610315565b3480156106fb575f5ffd5b506103847f000000000000000000000000000000000000000000000000000000000000000081565b34801561072e575f5ffd5b506103017f0000000000000000000000008c843012b347664caf84b907053754208a933fee81565b348015610761575f5ffd5b506103847f0000000000000000000000000000000000000000000000000000000000000bb881565b348015610794575f5ffd5b506103017f0000000000000000000000001f279e2fd9c4febd6f2b009b627441aa7639ce8881565b3480156107c7575f5ffd5b5061038461271081565b3480156107dc575f5ffd5b506106bf5f81565b6104176107f236600461510b565b610e6d565b348015610802575f5ffd5b50610384620f424081565b61041761081b36600461510b565b611132565b34801561082b575f5ffd5b506103847f00000000000000000000000000000000000000000000000000000000000006b881565b34801561085e575f5ffd5b50610384670de0b6b3a764000081565b348015610879575f5ffd5b506103017f00000000000000000000000065f7a87c6e055f55edd81fc01eee506f66acd4ab81565b3480156108ac575f5ffd5b506103017f00000000000000000000000065f7a87c6e055f55edd81fc01eee506f66acd4ab81565b3480156108df575f5ffd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b61091a6109153660046151a5565b611350565b604080516001600160a01b039093168352602083019190915201610315565b348015610944575f5ffd5b506103017f000000000000000000000000000000000000000000000000000000000000000081565b348015610977575f5ffd5b506103017f00000000000000000000000025c9c4b56e820e0dea438b145284f02d9ca9bd5281565b3480156109aa575f5ffd5b506103017f000000000000000000000000d80f344c62f3907643988654dafbafc32fcd0f7181565b3480156109dd575f5ffd5b506103017f00000000000000000000000049336345486268fd2e24fe8c400e0310be98b5d581565b348015610a10575f5ffd5b506103017f000000000000000000000000e9da5497c50f202f3e235c23381d9a13f83765b581565b348015610a43575f5ffd5b50610a806040518060400160405280600681526020017f76312e302e30000000000000000000000000000000000000000000000000000081525081565b604051610315919061521e565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810191909152610ac6612192565b6001600160a01b038581165f9081527f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb0060208181526040808420815160e0810183528154968716815261ffff600160a01b8804169381019390935260ff600160b01b8704811692840192909252600160b81b8604909116606083015267ffffffffffffffff600160c01b95869004811660808401526001909101546001600160c01b03811660a08401529490940490931660c08401529190859003610b9e57604051631f2a200560e01b815260040160405180910390fd5b80516001600160a01b0316610bc657604051630cbdb7b360e41b815260040160405180910390fd5b5f198503610bdb57610bd887336121f0565b94505b6040805160c0810182523381526001600160a01b038881166020830152891691810191909152606081018690526080810185905261ffff7f00000000000000000000000000000000000000000000000000000000000000641660a0820152610c438282612350565b610c4c87612732565b925050505b949350505050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810191909152610c92612192565b336001600160a01b03861614610cd4576040517f5c427cd900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038581165f9081527f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb006020818152604092839020835160e081018552815495861680825261ffff600160a01b8804169382019390935260ff600160b01b8704811695820195909552600160b81b8604909416606085015267ffffffffffffffff600160c01b95869004811660808601526001909101546001600160c01b03811660a08601529490940490931660c083015291610daa57604051630cbdb7b360e41b815260040160405180910390fd5b5f198503610dbf57610dbc87896121f0565b94505b845f03610ddf57604051631f2a200560e01b815260040160405180910390fd5b5f6040518060c001604052808a6001600160a01b03168152602001886001600160a01b03168152602001896001600160a01b031681526020018781526020018681526020017f000000000000000000000000000000000000000000000000000000000000006461ffff168152509050610e588282612350565b610e6187612732565b98975050505050505050565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810191909152610ea6612192565b6001600160a01b038581165f9081527f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb0060208181526040808420815160e0810183528154968716815261ffff600160a01b8804169381019390935260ff600160b01b8704811692840192909252600160b81b8604909116606083015267ffffffffffffffff600160c01b95869004811660808401526001909101546001600160c01b03811660a08401529490940490931660c08401529190859003610f7e57604051631f2a200560e01b815260040160405180910390fd5b80516001600160a01b0316610fa657604051630cbdb7b360e41b815260040160405180910390fd5b5f198503610fbd578051610fba90336121f0565b94505b5f6040518060c00160405280336001600160a01b03168152602001886001600160a01b03168152602001896001600160a01b031681526020018781526020018681526020017f000000000000000000000000000000000000000000000000000000000000006461ffff1681525090508160c0015167ffffffffffffffff165f036110645761104c82825f6127c6565b606082015261105a87612732565b9250610c51915050565b6001600160a01b038089165f9081526020858152604091829020825160e0810184528154948516815261ffff600160a01b8604169281019290925260ff600160b01b8504811693830193909352600160b81b8404909216606082015267ffffffffffffffff600160c01b93849004811660808301526001909201546001600160c01b03811660a0830152929092041660c082015261112390877f0000000000000000000000000000000000000000000000000000000000000064612c99565b6060820152610c438282612df0565b6040805160c0810182525f80825260208201819052918101829052606081018290526080810182905260a081019190915261116b612192565b6001600160a01b038581165f9081527f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb0060208181526040808420815160e0810183528154968716815261ffff600160a01b8804169381019390935260ff600160b01b8704811692840192909252600160b81b8604909116606083015267ffffffffffffffff600160c01b95869004811660808401526001909101546001600160c01b03811660a08401529490940490931660c0840152919085900361124357604051631f2a200560e01b815260040160405180910390fd5b80516001600160a01b031661126b57604051630cbdb7b360e41b815260040160405180910390fd5b5f6040518060c00160405280336001600160a01b03168152602001886001600160a01b03168152602001896001600160a01b031681526020018781526020018681526020017f000000000000000000000000000000000000000000000000000000000000006461ffff1681525090508160c0015167ffffffffffffffff165f03611346575f6112fa82846136f1565b5050509150505f61130e845f0151336121f0565b905080821061131d578061131f565b815b606084015261132f84845f6127c6565b5061133989612732565b8295505050505050610c51565b610c438282612df0565b5f5f61135a612192565b6040805160a0810182525f808252602082018190529181018290526060810182905260808101919091527f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb00906113af85613a12565b81526113f76113c160a0870187615230565b808060200260200160405190810160405280939291908181526020018383602002808284375f92019190915250613a4192505050565b6020808301919091526114159061141090870187615276565b613aea565b151560608301526001600160a01b031660408201525f6114386080870135613e47565b905061144760c0870187615230565b905061145660a0880188615230565b9050146114765760405163251f56a160e21b815260040160405180910390fd5b601061148560e0880188615276565b6114909291506152e1565b61149d60a0880188615230565b9050146114bd5760405163251f56a160e21b815260040160405180910390fd5b5f5b6114cc60a0880188615230565b905081101561158c575f6114ec6114e660e08a018a615276565b84613ead565b9050805f03611527576040517f6d2a011900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61153560c08a018a615230565b8481811061154557611545615300565b9050602002013503611583576040517fdcad892800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506001016114bf565b50815160208201519094506115fe9087908690156115ca577f0000000000000000000000008c843012b347664caf84b907053754208a933fee6115d0565b84604001515b6115dd60a08b018b615230565b905060011480156115f057506020860151155b5f1987602001511415613ef5565b94505f198260200151148061161557506020810151155b1561162f576116278260400151612732565b50505061218b565b6040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525f61169661167860c08a018a615230565b866020015181811061168c5761168c615300565b9050602002013590565b90505f6116b36116a960e08b018b615276565b8760200151613ead565b90505f670de0b6b3a7640000855f0151600a6116cf91906153f7565b6116d99190615405565b905084604001515f03611718576040517fb3cd5c6600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612710856020015110611757576040517f10e4931a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000008c843012b347664caf84b907053754208a933fee811660048301528416906370a0823190602401602060405180830381865afa9250505080156117d9575060408051601f3d908101601f191682019092526117d69181019061541c565b60015b61180f576040517fdcad892800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5061181d60a08b018b615230565b9050612710670de0b6b3a7640000876020015161183a9190615405565b61184491906152e1565b61184e91906152e1565b60208601526040850151829061186c90670de0b6b3a7640000615405565b61187691906152e1565b60408601525f61188960a08c018c615230565b9050838760600151670de0b6b3a76400006118a49190615405565b6118ae91906152e1565b6118b891906152e1565b9050836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611914575060408051601f3d908101601f1916820190925261191191810190615433565b60015b61194a576040517fafd210b500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60128160ff1610156119a357611961816012615453565b61196c90600a6153f7565b61197690836152e1565b9150611983816012615453565b61198e90600a6153f7565b876040015161199d91906152e1565b60408801525b60128160ff1611156119fc576119ba601282615453565b6119c590600a6153f7565b6119cf9083615405565b91506119dc601282615453565b6119e790600a6153f7565b87604001516119f69190615405565b60408801525b505f198c03611a1257611a0f84336121f0565b9b505b808c1015611a4c576040517ffe5cae1e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505f611a5b60a08c018c615230565b611a669150836152e1565b90505f670de0b6b3a7640000876040015183611a829190615405565b611a8c91906152e1565b90505f670de0b6b3a7640000886020015185611aa89190615405565b611ab291906152e1565b611abc908461546c565b9050808381611ad385670de0b6b3a7640000615405565b611add91906152e1565b611ae79190615405565b611af191906152e1565b8960800181815250506040518060e00160405280876001600160a01b031681526020018e8060a00190611b249190615230565b61ffff16825250895160ff166020808301919091525f604083018190526060830181905260808301528a015167ffffffffffffffff1660a09091015296505b67ffffffffffffffff821115611b9b57611b7e600a836152e1565b606088018051919350611b908261547f565b60ff16905250611b63565b5067ffffffffffffffff16608086015250604080870151905189916001600160a01b03808d16929116907fba476d0e4131eb62758cae024f971a6a6e5a5e21dfde233750bba5427901d2b3905f90a4604080870151868201518251600181525f6020820181905293810184905260608101919091526080810183905260a08101929092526001600160a01b0390811691908b16907f5c89aca078c4c42425a601eb984e720e9ea11723c9c40088f37fa5c68b0dddf69060c00160405180910390a350505060408084015190517f293c6a3a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000001e1577ba4dc74007ed6e8fb3d3ce2ce5477f531d169163293c6a3a91611cdb9189916004019182526001600160a01b0316602082015260400190565b6020604051808303815f875af1158015611cf7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d1b919061541c565b5082606001518015611d5557507f00000000000000000000000049336345486268fd2e24fe8c400e0310be98b5d56001600160a01b031615155b15611df65780516040517f21cc09680000000000000000000000000000000000000000000000000000000081526001600160a01b03888116600483015291821660248201527f00000000000000000000000049336345486268fd2e24fe8c400e0310be98b5d5909116906321cc0968906044015f604051808303815f87803b158015611ddf575f5ffd5b505af1158015611df1573d5f5f3e3d5ffd5b505050505b6001600160a01b038681165f9081526020868152604080832085518154938701518784015160608901516080808b0151948a167fffffffffffffffffffff0000000000000000000000000000000000000000000090981697909717600160a01b61ffff90941693909302929092177fffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff16600160b01b60ff928316027fffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff1617600160b81b9190921602176001600160c01b03908116600160c01b67ffffffffffffffff938416810291909117845560a089015160c08a015192169190921690910217600190910155908601519051919283927f0000000000000000000000008127e655795aefb989e770617fe4bd29a9b0d94a909116917f88e06b700000000000000000000000000000000000000000000000000000000091611f5f9187918d919060240161551c565b60408051601f198184030181529181526020820180516001600160e01b03167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051611fb59190615546565b5f60405180830381855af49150503d805f8114611fed576040519150601f19603f3d011682016040523d82523d5f602084013e611ff2565b606091505b50915091508161203e5780515f03612036576040517fdc802c7400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805160208201fd5b5f81806020019051810190612053919061555c565b6040517ff1e3d5c40000000000000000000000000000000000000000000000000000000081526001600160a01b038083166004830152919250908a169063f1e3d5c4906024015f604051808303815f87803b1580156120b0575f5ffd5b505af11580156120c2573d5f5f3e3d5ffd5b50505050505050875f14612179575f6120fc828a7f0000000000000000000000000000000000000000000000000000000000000064612c99565b9050612177826040518060c00160405280336001600160a01b0316815260200187604001516001600160a01b031681526020018a6001600160a01b031681526020018481526020015f81526020017f000000000000000000000000000000000000000000000000000000000000006461ffff16815250612df0565b505b6121868360400151612732565b505050505b9250929050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16156121ee576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316836001600160a01b031614801561223157505f34115b1561223d57504761234a565b6040516370a0823160e01b81526001600160a01b0383811660048301525f91908516906370a0823190602401602060405180830381865afa158015612284573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122a8919061541c565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301523060248301529192505f9186169063dd62ed3e90604401602060405180830381865afa158015612310573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612334919061541c565b90508181106123435781612345565b805b925050505b92915050565b60c08201517f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb009067ffffffffffffffff165f03612396576123918383614158565b505050565b5f5f5f5f5f6123b38888606001518960a001518a608001516144e1565b9450945094509450945084876060018181525050835f036123e757604051631f2a200560e01b815260040160405180910390fd5b86516060880151604089015161242a926001600160a01b03909116917f0000000000000000000000008c843012b347664caf84b907053754208a933fee9061473a565b6124348385615577565b8860a001818151612445919061558a565b6001600160c01b0390811690915260a08a015160408a810180516001600160a01b039081165f90815260208d8152848220600190810180547fffffffffffffffff0000000000000000000000000000000000000000000000001697909816969096179096559151168152918a0190925290812080548693509091906124cb908490615577565b90915550506020808801516040808a01516060808c015160a0808f015185515f8152978801929092529386018a9052908501879052608085018690526001600160c01b0316918401919091526001600160a01b03918216929116907f5c89aca078c4c42425a601eb984e720e9ea11723c9c40088f37fa5c68b0dddf69060c00160405180910390a38315612728578751612564906147a7565b87516001600160a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad738116911603612699578751604051636ce5768960e11b81526001600160a01b039182166004820152306024820152604481018690527f0000000000000000000000008c843012b347664caf84b907053754208a933fee9091169063d9caed12906064015f604051808303815f87803b158015612609575f5ffd5b505af115801561261b573d5f5f3e3d5ffd5b5050604051632e1a7d4d60e01b8152600481018790527f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03169250632e1a7d4d91506024015f604051808303815f87803b15801561267e575f5ffd5b505af1158015612690573d5f5f3e3d5ffd5b50505050612728565b87516020880151604051636ce5768960e11b81526001600160a01b0392831660048201529082166024820152604481018690527f0000000000000000000000008c843012b347664caf84b907053754208a933fee9091169063d9caed12906064015f604051808303815f87803b158015612711575f5ffd5b505af1158015612723573d5f5f3e3d5ffd5b505050505b5050505050505050565b4780156127c2575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114612782576040519150601f19603f3d011682016040523d82523d5f602084013e612787565b606091505b5050905080612391576040517ff0c49d4400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050565b5f5f6127de855f015185604001518660800151614914565b90505f6040518060c00160405280875f01516001600160a01b0316815260200186604001516001600160a01b03168152602001866060015181526020015f8152602001836001600160a01b0316815260200186602001516001600160a01b031681525090507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316865f01516001600160a01b031614801561288657505f34115b156129425784606001513410156128c9576040517fcd1c886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031663d0e30db086606001516040518263ffffffff1660e01b81526004015f604051808303818588803b158015612926575f5ffd5b505af1158015612938573d5f5f3e3d5ffd5b5050505050612962565b845160608601518751612962926001600160a01b0390911691309061473a565b5f5a90505f606061f618831115612a9a575f8761297f578361298b565b61298b61f6188561546c565b6040805187516001600160a01b0390811660248301526020808a01518216604484015289840151606484015260608a0151608484015260808a0151821660a484015260a08a0151821660c4808501919091528451808503909101815260e49093018452820180516001600160e01b03167f475c70c00000000000000000000000000000000000000000000000000000000017905291519293507f0000000000000000000000008127e655795aefb989e770617fe4bd29a9b0d94a909116918391612a5491615546565b5f604051808303818686f4925050503d805f8114612a8d576040519150601f19603f3d011682016040523d82523d5f602084013e612a92565b606091505b509093509150505b8115612abb5780806020019051810190612ab4919061541c565b9550612b4e565b8615612b145787604001516001600160a01b03167ffb1be82b5654061cfdabd96e32c72732fa8e00f8b23d8039b9cb71b449502c8f60015a6040805160ff909316835260208301919091520160405180910390a2612b4e565b80515f03612036576040517f81ceff3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505086516040516370a0823160e01b81523060048201525f92506001600160a01b03909116906370a0823190602401602060405180830381865afa158015612b98573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bbc919061541c565b90508015612c8f5786516001600160a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad738116911603612c7257604051632e1a7d4d60e01b8152600481018290527f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015612c57575f5ffd5b505af1158015612c69573d5f5f3e3d5ffd5b50505050612c8f565b60208601518751612c8f916001600160a01b039091169083614977565b5050509392505050565b5f5f670de0b6b3a76400008560400151600a612cb591906153f7565b612cbf9190615405565b90505f856020015161ffff1682612cd691906152e1565b90505f8660600151600a612cea91906153f7565b876080015167ffffffffffffffff16612d039190615405565b90505f612d108383615405565b90505f8860a001516001600160c01b031683612d2c9190615577565b612d3690836152e1565b90505f612d4961ffff8916612710615577565b612d558a612710615405565b612d5f91906152e1565b9050808a60a001516001600160c01b031685612d7b9190615577565b612d859190615577565b612d8f90846152e1565b612d99908361546c565b965082612da6888461546c565b612db0898561546c565b612dba90866152e1565b612dc49190615405565b108015612dd057508615155b15612de357612de060018861546c565b96505b5050505050509392505050565b5f7f4115e7e53fb5d2198d5cadf1cb530b9c70f06c4e1b4565d7cc7245d4040dcb009050612e416040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b8360c0015167ffffffffffffffff168460400151600a612e6191906153f7565b612e6b9190615405565b8152606083015160a084015160808501515f92612e899288926149a8565b606087015260808601526040850191909152602084018290529150158015612eb5575081516060830151105b15612ed357604051631f2a200560e01b815260040160405180910390fd5b808260400151612ee3919061546c565b8560a001818151612ef491906155a9565b6001600160c01b0390811690915260a0870151604087810180516001600160a01b039081165f90815260208a8152848220600190810180547fffffffffffffffff00000000000000000000000000000000000000000000000016979098169690961790965591511681529187019092529081208054849350909190612f7a908490615577565b9250508190555083602001516001600160a01b031684604001516001600160a01b03167f5c89aca078c4c42425a601eb984e720e9ea11723c9c40088f37fa5c68b0dddf6600185602001518660400151876080015188606001518c60a0015160405161301996959493929190951515865260208601949094526040850192909252606084015260808301526001600160c01b031660a082015260c00190565b60405180910390a3505f7f0000000000000000000000008c843012b347664caf84b907053754208a933fee90507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316855f01516001600160a01b031614801561308957505f34115b156131615781604001514710156130cc576040517fcd1c886700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031663d0e30db083604001516040518263ffffffff1660e01b81526004015f604051808303818588803b158015613129575f5ffd5b505af115801561313b573d5f5f3e3d5ffd5b5050506040840151875161315c93506001600160a01b031691508390614977565b613181565b835160408301518651613181926001600160a01b0390911691849061473a565b61318e84604001516147a7565b604080850151602080870151908501519251636ce5768960e11b81526001600160a01b039283166004820152908216602482015260448101929092527f0000000000000000000000008c843012b347664caf84b907053754208a933fee169063d9caed12906064015f604051808303815f87803b15801561320d575f5ffd5b505af115801561321f573d5f5f3e3d5ffd5b50505050815f01518260600151106136ea576040808501516001600160a01b03165f90815260208590522060010180546001600160c01b031690558451613265906147a7565b5f5a905061f6188110156133125760c0860151604080870180516001600160a01b039081165f9081526020898152938120600101805467ffffffffffffffff909616600160c01b026001600160c01b03909616959095179094559186015160608901525116907ffb1be82b5654061cfdabd96e32c72732fa8e00f8b23d8039b9cb71b449502c8f905a6040805160ff909316835260208301919091520160405180910390a2505050505050565b5f806001600160a01b037f0000000000000000000000008127e655795aefb989e770617fe4bd29a9b0d94a1661334a61f6188561546c565b604080516080810182528b81528a8201516001600160a01b0390811660208301528951828401527f0000000000000000000000008c843012b347664caf84b907053754208a933fee16606082015290516133a791906024016155c8565b60408051601f198184030181529181526020820180516001600160e01b03167f9875302d00000000000000000000000000000000000000000000000000000000179052516133f59190615546565b5f604051808303818686f4925050503d805f811461342e576040519150601f19603f3d011682016040523d82523d5f602084013e613433565b606091505b5091509150816134de5760c0880151604080890180516001600160a01b039081165f90815260208b8152938120600101805467ffffffffffffffff909616600160c01b026001600160c01b03909616959095179094559188015160608b01525116907ffb1be82b5654061cfdabd96e32c72732fa8e00f8b23d8039b9cb71b449502c8f905a6040805160ff909316835260208301919091520160405180910390a25050505050505050565b5f5f5f838060200190518101906134f59190615613565b925092509250604051806040016040528084815260200183815250896002015f8c604001516001600160a01b03166001600160a01b031681526020019081526020015f209060026135479291906150a5565b5080156135b6576040808b01516001600160a01b03165f90815260018b01602052908120805483929061357b908490615577565b90915550508a516135b6906001600160a01b03167f0000000000000000000000008c843012b347664caf84b907053754208a933fee83614977565b5f88602001518b606001516135cb919061546c565b9050801561368d5760608b0181905260208c01516135f59061ffff16670de0b6b3a76400006152e1565b67ffffffffffffffff1660c08d015260a08b015160808c01515f9161361d918f9185916149a8565b5050509150505f6136348e5f01518e5f01516121f0565b90505f8183106136445781613646565b825b9050801561367a5760608e018190526136618f8f60016127c6565b8c602001516136709190615577565b60608f0152613685565b60208c015160608f01525b505050613698565b602089015160608c01525b8a604001516001600160a01b03167f3774b363547126f466f72012377433ce54030696ae07ad35617ad9317eaf776b8a5f01516040516136da91815260200190565b60405180910390a2505050505050505b5050505050565b5f5f5f5f5f5f6040518060c00160405280885f01516001600160a01b0316815260200189604001516001600160a01b031681526020015f81526020018960600151815260200161374d895f01518b604001518c60800151614914565b6001600160a01b0390811682525f6020928301819052604080518551841660248201528585015184166044820152858201516064820152606086015160848201526080860151841660a482015260a0860151841660c4808301919091528251808303909101815260e4909101825293840180516001600160e01b03167f72deb87d00000000000000000000000000000000000000000000000000000000179052519394509283927f0000000000000000000000008127e655795aefb989e770617fe4bd29a9b0d94a9092169161382291615546565b5f60405180830381855af49150503d805f811461385a576040519150601f19603f3d011682016040523d82523d5f602084013e61385f565b606091505b509150915081801561387157505f8151115b156139d6575f8180602001905181019061388b9190615613565b9199509650905087158061389f57505f1988145b156138d6576040517f4bb8f45800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b895f01516001600160a01b03168b604001516001600160a01b03161115613917578561390a670de0b6b3a764000080615405565b61391491906152e1565b95505b895184516001600160a01b0391821691160361394c57620f424061393b828a615405565b61394591906152e1565b9650613988565b5f620f424061395b838b615405565b61396591906152e1565b9050670de0b6b3a764000061397a8883615405565b61398491906152e1565b9750505b836060015198505f670de0b6b3a76400008b60400151600a6139aa91906153f7565b6139b49190615405565b90508a6020015161ffff16816139ca91906152e1565b95505050505050613a08565b6040517f4bb8f45800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9295509295909350565b5f81604051602001613a249190615737565b604051602081830303815290604052805190602001209050919050565b5f81515f03613a635760405163251f56a160e21b815260040160405180910390fd5b5f5b8251811015613ae1577fc67689164119bbe18c3364dfbf1d1ca9c237139bf1fb491a8cf3ce51bea0e03b613ac7848381518110613aa457613aa4615300565b60200260200101516040805180820190915260ff82168152602081019190915290565b8051906020012003613ad95792915050565b600101613a65565b505f1992915050565b5f806014839003613b0c57613aff8385615805565b60601c5f9150915061218b565b5f805b84821015613e20575f868684818110613b2a57613b2a615300565b909101357fff00000000000000000000000000000000000000000000000000000000000000169150819050613bd15785613b65846015615577565b1115613b8457604051632953f2b160e11b815260040160405180910390fd5b8686613b91856001615577565b90613b9d866015615577565b92613baa93929190615845565b613bb391615805565b60601c94505f935060019150613bca601584615577565b9250613e1a565b7ffd000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821601613c8b5785613c26846015615577565b1115613c4557604051632953f2b160e11b815260040160405180910390fd5b8686613c52856001615577565b90613c5e866015615577565b92613c6b93929190615845565b613c7491615805565b60601c945060019350839150613bca601584615577565b7f01000000000000000000000000000000000000000000000000000000000000007fff0000000000000000000000000000000000000000000000000000000000000082161480613d1c57507f04000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000008216145b15613d575785613d2d846021615577565b1115613d4c57604051632953f2b160e11b815260040160405180910390fd5b613bca602184615577565b7fff0000000000000000000000000000000000000000000000000000000000000081167f020000000000000000000000000000000000000000000000000000000000000003613dac5785613d2d846021615577565b600560f882901c10801590613dc65750600960f882901c11155b15613e015785613dd7846003615577565b1115613df657604051632953f2b160e11b815260040160405180910390fd5b613bca600384615577565b604051632953f2b160e11b815260040160405180910390fd5b50613b0f565b80613e3e57604051632953f2b160e11b815260040160405180910390fd5b50509250929050565b613e7160405180608001604052805f60ff1681526020015f81526020015f81526020015f81525090565b60ff8216815261ffff600883901c1660208201526dffffffffffffffffffffffffffff601883901c16604082015260889190911c606082015290565b5f8383613ebb846010615405565b90613ec7856001615577565b613ed2906010615405565b92613edf93929190615845565b613ee89161586c565b60801c90505b9392505050565b5f5f613f048760800135613e47565b90505f6040518060a00160405280888152602001613f3b8a604001356040805180820190915260ff82168152602081019190915290565b8152602001613f638a606001356040805180820190915260ff82168152602081019190915290565b8152602001670de0b6b3a7640000845f0151600a613f8191906153f7565b613f8b9190615405565b81523060209091015290505f85613fc2577f000000000000000000000000d5a550305b80cec05093b42cc5f23403d514dabc613fe4565b7f000000000000000000000000e9da5497c50f202f3e235c23381d9a13f83765b55b90505f85613ff2575f61402d565b613fff60a08b018b615230565b8551909150670de0b6b3a76400009061401990600a6153f7565b6140239190615405565b61402d91906152e1565b90505f5f836001600160a01b031663ba45e64560e01b868c86604051602401614058939291906158d1565b60408051601f198184030181529181526020820180516001600160e01b03167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516140ae9190615546565b5f60405180830381855af49150503d805f81146140e6576040519150601f19603f3d011682016040523d82523d5f602084013e6140eb565b606091505b5091509150816140fc578060208201fd5b80806020019051810190614110919061555c565b96508a876001600160a01b03167f50cabf552e2709fecaf92964e5189fdafb7e5cbab162274eb0f541dbb48588a160405160405180910390a350505050505095945050505050565b80516060820151604083015161417b926001600160a01b0390911691309061473a565b5f614192835f015183604001518460800151614914565b90505f6040518060c0016040528084604001516001600160a01b03168152602001855f01516001600160a01b03168152602001846060015181526020015f8152602001836001600160a01b031681526020017f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316865f01516001600160a01b03161461422a57846020015161422c565b305b6001600160a01b039081169091526040805183518316602482015260208085015184166044830152848301516064830152606085015160848301526080850151841660a483015260a0850151841660c4808401919091528351808403909101815260e49092018352810180516001600160e01b03167f475c70c00000000000000000000000000000000000000000000000000000000017905290519293505f9283927f0000000000000000000000008127e655795aefb989e770617fe4bd29a9b0d94a16916142fa91615546565b5f60405180830381855af49150503d805f8114614332576040519150601f19603f3d011682016040523d82523d5f602084013e614337565b606091505b50915091508161437b5780515f03612036576040517f81ceff3000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85516001600160a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73811691160361443e575f818060200190518101906143c4919061541c565b604051632e1a7d4d60e01b8152600481018290529091507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015614426575f5ffd5b505af1158015614438573d5f5f3e3d5ffd5b50505050505b60408086015190516370a0823160e01b81523060048201525f916001600160a01b0316906370a0823190602401602060405180830381865afa158015614486573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144aa919061541c565b905080156144d8576144d886602001518288604001516001600160a01b03166149779092919063ffffffff16565b50505050505050565b5f5f5f5f5f5f5f670de0b6b3a76400008b60400151600a61450291906153f7565b61450c9190615405565b90508a6020015161ffff168161452291906152e1565b9150505f8a60600151600a61453791906153f7565b8b6080015167ffffffffffffffff166145509190615405565b90505f61455d8383615405565b90505f8c60a001516001600160c01b0316836145799190615577565b61458390836152e1565b90505f614590828661546c565b90508a156145f8575f6145c9868d6145b088670de0b6b3a7640000615405565b6145ba91906152e1565b6145c49190615405565b614c2e565b9050828111156145f2575f6145de848361546c565b90508e8110156145ec57809e505b506145f6565b5f9d505b505b808d111561460457809c505b8c99506146118a8261546c565b95505f61461e8e84615577565b61462890856152e1565b8f60a001516001600160c01b0316866146419190615577565b61464b919061546c565b9050836146588f85615577565b8f856146649190615577565b61466e90876152e1565b6146789190615405565b10801561468457508015155b156146975761469460018261546c565b90505b6127106146a861ffff8f1683615405565b6146b291906152e1565b9850881580156146c5575061ffff8d1615155b80156146d057508015155b156146da57600198505b6146e4898261546c565b99505f6146f18f85615577565b905080878161470889670de0b6b3a7640000615405565b61471291906152e1565b61471c9190615405565b61472691906152e1565b985050505050505050945094509450945094565b6040516001600160a01b0384811660248301528381166044830152606482018390526147a19186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614d12565b50505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166147d85750565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f91908316906370a0823190602401602060405180830381865afa15801561483f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190614863919061541c565b905080156127c257604051636ce5768960e11b81526001600160a01b0383811660048301527f0000000000000000000000008c843012b347664caf84b907053754208a933fee81166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063d9caed12906064015f604051808303815f87803b1580156148fa575f5ffd5b505af115801561490c573d5f5f3e3d5ffd5b505050505050565b5f815f0361492357505f613eee565b5f846001600160a01b0316846001600160a01b031611156149625782614951670de0b6b3a764000080615405565b61495b91906152e1565b9050614965565b50815b61496e81614d91565b95945050505050565b6040516001600160a01b0383811660248301526044820183905261239191859182169063a9059cbb9060640161476f565b5f5f5f5f5f5f5f670de0b6b3a76400008b60400151600a6149c991906153f7565b6149d39190615405565b90508a6020015161ffff16816149e991906152e1565b9150505f8a60600151600a6149fe91906153f7565b8b6080015167ffffffffffffffff16614a179190615405565b90505f614a248383615405565b90505f8c60a001516001600160c01b031683614a409190615577565b614a4a90836152e1565b9050614a56818561546c565b94508915614aa5575f614a76858c6145b087670de0b6b3a7640000615405565b905081811015614a9f575f614a8b828461546c565b90508d811015614a9957809d505b50614aa3565b5f9c505b505b5f8d60c0015167ffffffffffffffff168e60400151600a614ac691906153f7565b614ad09190615405565b905080614add8e88615577565b1115614b0457858111614af0575f614afa565b614afa868261546c565b9950899c50614b08565b8c99505b5060a08d01515f906001600160c01b031684614b248f8561546c565b614b2e90866152e1565b614b38919061546c565b614b42919061546c565b905082614b4f8e8461546c565b614b598f8561546c565b614b6390866152e1565b614b6d9190615405565b1015614b8157614b7e600182615577565b90505b614b8b8a8361546c565b614b95908661546c565b9550612710614ba861ffff8e1683615405565b614bb291906152e1565b975087158015614bc557505f8c61ffff16115b15614bcf57600197505b614bd98882615577565b98505f614be68e8461546c565b9050808681614bfd88670de0b6b3a7640000615405565b614c0791906152e1565b614c119190615405565b614c1b91906152e1565b9750505050505050945094509450945094565b5f815f03614c3d57505f919050565b5f6001614c4984614dac565b901c6001901b90506001818481614c6257614c626152b9565b048201901c90506001818481614c7a57614c7a6152b9565b048201901c90506001818481614c9257614c926152b9565b048201901c90506001818481614caa57614caa6152b9565b048201901c90506001818481614cc257614cc26152b9565b048201901c90506001818481614cda57614cda6152b9565b048201901c90506001818481614cf257614cf26152b9565b048201901c9050613eee81828581614d0c57614d0c6152b9565b04614e3f565b5f614d266001600160a01b03841683614e54565b905080515f14158015614d4a575080806020019051810190614d489190615965565b155b15612391576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024015b60405180910390fd5b5f61234a6145c483600160c01b670de0b6b3a7640000614e61565b5f80608083901c15614dc057608092831c92015b604083901c15614dd257604092831c92015b602083901c15614de457602092831c92015b601083901c15614df657601092831c92015b600883901c15614e0857600892831c92015b600483901c15614e1a57600492831c92015b600283901c15614e2c57600292831c92015b600183901c1561234a5760010192915050565b5f818310614e4d5781613eee565b5090919050565b6060613eee83835f614f39565b5f838302815f1985870982811083820303915050805f03614e9557838281614e8b57614e8b6152b9565b0492505050613eee565b808411614ece576040517f227bc15300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606081471015614f77576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401614d88565b5f5f856001600160a01b03168486604051614f929190615546565b5f6040518083038185875af1925050503d805f8114614fcc576040519150601f19603f3d011682016040523d82523d5f602084013e614fd1565b606091505b5091509150614fe1868383614feb565b9695505050505050565b60608261500057614ffb82615060565b613eee565b815115801561501757506001600160a01b0384163b155b15615059576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401614d88565b5080613eee565b8051156150705780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b82600281019282156150d3579160200282015b828111156150d35782518255916020019190600101906150b8565b506150df9291506150e3565b5090565b5b808211156150df575f81556001016150e4565b6001600160a01b03811681146150a2575f5ffd5b5f5f5f5f6080858703121561511e575f5ffd5b8435615129816150f7565b93506020850135615139816150f7565b93969395505050506040820135916060013590565b5f5f5f5f5f60a08688031215615162575f5ffd5b853561516d816150f7565b9450602086013561517d816150f7565b9350604086013561518d816150f7565b94979396509394606081013594506080013592915050565b5f5f604083850312156151b6575f5ffd5b82359150602083013567ffffffffffffffff8111156151d3575f5ffd5b830161010081860312156151e5575f5ffd5b809150509250929050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f613eee60208301846151f0565b5f5f8335601e19843603018112615245575f5ffd5b83018035915067ffffffffffffffff82111561525f575f5ffd5b6020019150600581901b360382131561218b575f5ffd5b5f5f8335601e1984360301811261528b575f5ffd5b83018035915067ffffffffffffffff8211156152a5575f5ffd5b60200191503681900382131561218b575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f826152fb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b6001815b600184111561534f57808504811115615333576153336152cd565b600184161561534157908102905b60019390931c928002615318565b935093915050565b5f826153655750600161234a565b8161537157505f61234a565b81600181146153875760028114615391576153ad565b600191505061234a565b60ff8411156153a2576153a26152cd565b50506001821b61234a565b5060208310610133831016604e8410600b84101617156153d0575081810a61234a565b6153dc5f198484615314565b805f19048211156153ef576153ef6152cd565b029392505050565b5f613eee60ff841683615357565b808202811582820484141761234a5761234a6152cd565b5f6020828403121561542c575f5ffd5b5051919050565b5f60208284031215615443575f5ffd5b815160ff81168114613eee575f5ffd5b60ff828116828216039081111561234a5761234a6152cd565b8181038181111561234a5761234a6152cd565b5f60ff821660ff8103615494576154946152cd565b60010192915050565b6001600160a01b03815116825261ffff602082015116602083015260ff604082015116604083015260ff606082015116606083015267ffffffffffffffff608082015116608083015260a081015161550060a08401826001600160c01b03169052565b5060c081015161239160c084018267ffffffffffffffff169052565b610120810161552b828661549d565b6001600160a01b039390931660e08201526101000152919050565b5f82518060208501845e5f920191825250919050565b5f6020828403121561556c575f5ffd5b8151613eee816150f7565b8082018082111561234a5761234a6152cd565b6001600160c01b03828116828216039081111561234a5761234a6152cd565b6001600160c01b03818116838216019081111561234a5761234a6152cd565b5f610140820190506155db82845161549d565b6001600160a01b0360208401511660e083015260408301516101008301526001600160a01b0360608401511661012083015292915050565b5f5f5f60608486031215615625575f5ffd5b5050815160208301516040909301519094929350919050565b5f5f8335601e19843603018112615653575f5ffd5b830160208101925035905067ffffffffffffffff811115615672575f5ffd5b80360382131561218b575f5ffd5b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b5f5f8335601e198436030181126156be575f5ffd5b830160208101925035905067ffffffffffffffff8111156156dd575f5ffd5b8060051b360382131561218b575f5ffd5b8183525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561571e575f5ffd5b8260051b80836020870137939093016020019392505050565b60208082528235828201525f906157509084018461563e565b610100604085015261576761012085018284615680565b604086013560608681019190915286013560808087019190915286013560a08087019190915290925061579d91508501856156a9565b601f198584030160c08601526157b48382846156ee565b925050506157c560c08501856156a9565b601f198584030160e08601526157dc8382846156ee565b925050506157ed60e085018561563e565b601f1985840301610100860152614fe1838284615680565b80356bffffffffffffffffffffffff19811690601484101561583e576bffffffffffffffffffffffff19808560140360031b1b82161691505b5092915050565b5f5f85851115615853575f5ffd5b8386111561585f575f5ffd5b5050820193919092039150565b80357fffffffffffffffffffffffffffffffff00000000000000000000000000000000811690601084101561583e577fffffffffffffffffffffffffffffffff00000000000000000000000000000000808560100360031b1b82161691505092915050565b60608152835160608201525f602085015160a060808401526158f76101008401826151f0565b905060408601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08483030160a085015261593282826151f0565b606088015160c08601526080909701516001600160a01b0390811660e08601529590951660208401525050604001525090565b5f60208284031215615975575f5ffd5b81518015158114613eee575f5ffdfea26469706673582212200d8715f0aced4089c9d2ad9ca9ec82f149ccfb226250b6760c5dc2f1531d14d364736f6c634300081b0033