false
false
0
The new Blockscout UI is now open source! Learn how to deploy it here

Contract Address Details

0xe222fBE074A436145b255442D919E4E3A6c6a480

Token
KyberSwap v2 NFT Positions Manager (KS2-NPM)
Creator
0xf60f3a–042f13 at 0x113c98–c74c72
Balance
0 ETH
Tokens
Fetching tokens...
Transactions
25,628 Transactions
Transfers
101,687 Transfers
Gas Used
8,763,389,924
Last Balance Update
4689782

Contract Creation Code

Verify & Publish
0x610160604052600a80546001600160501b0319166001908117909155600b553480156200002b57600080fd5b5060405162005fd438038062005fd48339810160408190526200004e91620002c9565b82828282828181818160405180606001604052806022815260200162005fb260229139604051806040016040528060078152602001664b53322d4e504d60c81b815250604051806040016040528060018152602001603160f81b81525082828160009080519060200190620000c592919062000206565b508051620000db90600190602084019062000206565b50508351602094850120825192850192909220608083815260a0828152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818a0152808201969096526060860193909352469185019190915230848201528151808503909101815260c080850180845282519288019290922090526001600160a01b0388811660e081905290881661010052630d04b86b60e41b9091529051909463d04b86b0945060c48085019491935090829003018186803b158015620001a657600080fd5b505afa158015620001bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e1919062000313565b610120525050506001600160a01b0390931661014052506200036a9650505050505050565b82805462000214906200032d565b90600052602060002090601f01602090048101928262000238576000855562000283565b82601f106200025357805160ff191683800117855562000283565b8280016001018555821562000283579182015b828111156200028357825182559160200191906001019062000266565b506200029192915062000295565b5090565b5b8082111562000291576000815560010162000296565b80516001600160a01b0381168114620002c457600080fd5b919050565b600080600060608486031215620002df57600080fd5b620002ea84620002ac565b9250620002fa60208501620002ac565b91506200030a60408501620002ac565b90509250925092565b6000602082840312156200032657600080fd5b5051919050565b600181811c908216806200034257607f821691505b602082108114156200036457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516101205161014051615ba66200040c60003960006128470152600061328b015260008181610244015281816107e7015281816122a80152818161239801528181612d9901528181612ddf0152612e7401526000818161092401528181610ce601528181610da201528181611233015261326701526000818161049f015261168d01526000505060005050615ba66000f3fe6080604052600436106102345760003560e01c806370a082311161012e578063b44a6ac9116100ab578063c45a01551161006f578063c45a015514610912578063c87b56dd14610946578063e985e9c514610966578063ea540632146109af578063ed0d8dd2146109ea57600080fd5b8063b44a6ac914610809578063b88d4fde1461088f578063bac37ef7146108af578063bf1316c1146108c2578063c238a3a3146108d557600080fd5b806399fbab88116100f257806399fbab88146106105780639f382e9b14610775578063a22cb46514610795578063ac9650d8146107b5578063ad5c4648146107d557600080fd5b806370a082311461056a57806375794a3c1461058a5780637ac2ff7b146105a057806395d89b41146105c057806398e04d77146105d557600080fd5b806323b872dd116101bc57806342842e0e1161018057806342842e0e146104c157806342966c68146104e15780634bfe3398146104f45780634f6ccce71461052a5780636352211e1461054a57600080fd5b806323b872dd146103f95780632f745c591461041957806330adf81f14610439578063311e79941461046d5780633644e5151461048d57600080fd5b8063095ea7b311610203578063095ea7b31461036757806318160ddd1461038757806318e56131146103a65780631c49584a146103de5780631faa4133146103f157600080fd5b806301ffc9a7146102a857806303a6dab3146102dd57806306fdde031461030d578063081812fc1461032f57600080fd5b366102a357336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102a15760405162461bcd60e51b815260206004820152600860248201526709cdee840ae8aa8960c31b60448201526064015b60405180910390fd5b005b600080fd5b3480156102b457600080fd5b506102c86102c3366004614f73565b610a0a565b60405190151581526020015b60405180910390f35b3480156102e957600080fd5b506102c86102f8366004614fa5565b600e6020526000908152604090205460ff1681565b34801561031957600080fd5b50610322610a50565b6040516102d4919061501a565b34801561033b57600080fd5b5061034f61034a36600461502d565b610ae2565b6040516001600160a01b0390911681526020016102d4565b34801561037357600080fd5b506102a1610382366004615046565b610b7e565b34801561039357600080fd5b506008545b6040519081526020016102d4565b3480156103b257600080fd5b50600a546103c6906001600160501b031681565b6040516001600160501b0390911681526020016102d4565b61034f6103ec366004615085565b610c94565b6102a1610f5b565b34801561040557600080fd5b506102a16104143660046150df565b610f6d565b34801561042557600080fd5b50610398610434366004615046565b610fe8565b34801561044557600080fd5b506103987f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad81565b34801561047957600080fd5b5061039861048836600461502d565b61107e565b34801561049957600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b3480156104cd57600080fd5b506102a16104dc3660046150df565b611333565b6102a16104ef36600461502d565b61134e565b34801561050057600080fd5b506103c661050f366004614fa5565b600f602052600090815260409020546001600160501b031681565b34801561053657600080fd5b5061039861054536600461502d565b6114bd565b34801561055657600080fd5b5061034f61056536600461502d565b611550565b34801561057657600080fd5b50610398610585366004614fa5565b6115c7565b34801561059657600080fd5b50610398600b5481565b3480156105ac57600080fd5b506102a16105bb366004615120565b61164e565b3480156105cc57600080fd5b50610322611a07565b3480156105e157600080fd5b506105f56105f0366004615182565b611a16565b604080519384526020840192909252908201526060016102d4565b34801561061c57600080fd5b5061076761062b36600461502d565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152604080516060810182526000808252602082018190529181019190915250506000908152600d6020908152604080832081516101008101835281546001600160601b0381168252600160601b90046001600160a01b03908116828601526001808401546001600160501b038116848701819052600160501b8204600290810b606080880191909152600160681b8404820b6080880152600160801b9093046001600160801b031660a087015286015460c086015260039095015460e0850152938752600c8652958490208451938401855280548083168552600160a01b900462ffffff16958401959095529390940154909216908201529091565b6040516102d492919061519a565b34801561078157600080fd5b506102a1610790366004615263565b611ead565b3480156107a157600080fd5b506102a16107b03660046152f1565b611ff1565b6107c86107c336600461532a565b6120b6565b6040516102d4919061539f565b3480156107e157600080fd5b5061034f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561081557600080fd5b5061085d61082436600461502d565b6010602052600090815260409020805460019091015463ffffffff808316926401000000008104821692600160401b9091049091169084565b6040516102d4949392919063ffffffff9485168152928416602084015292166040820152606081019190915260800190565b34801561089b57600080fd5b506102a16108aa366004615470565b61220e565b6102a16108bd36600461551f565b612290565b6102a16108d0366004615544565b612406565b6108e86108e3366004615586565b61247a565b604080516001600160801b03909516855260208501939093529183015260608201526080016102d4565b34801561091e57600080fd5b5061034f7f000000000000000000000000000000000000000000000000000000000000000081565b34801561095257600080fd5b5061032261096136600461502d565b6127c4565b34801561097257600080fd5b506102c8610981366004615599565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6109c26109bd3660046155c7565b6128cd565b604080519485526001600160801b0390931660208501529183015260608201526080016102d4565b3480156109f657600080fd5b506105f5610a053660046155da565b612993565b60006001600160e01b03198216633eea15eb60e11b1480610a3b57506001600160e01b03198216638f80888b60e01b145b80610a4a5750610a4a82612ca3565b92915050565b606060008054610a5f906155ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8b906155ec565b8015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610b5b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610298565b506000908152600d6020526040902054600160601b90046001600160a01b031690565b6000610b8982611550565b9050806001600160a01b0316836001600160a01b03161415610bf75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610298565b336001600160a01b0382161480610c135750610c138133610981565b610c855760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610298565b610c8f8383612ce3565b505050565b6000836001600160a01b0316856001600160a01b031610610cb457600080fd5b604051630b4c774160e11b81526001600160a01b038681166004830152858116602483015262ffffff851660448301527f00000000000000000000000000000000000000000000000000000000000000001690631698ee829060640160206040518083038186803b158015610d2857600080fd5b505afa158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190615621565b90506001600160a01b038116610e215760405163a167129560e01b81526001600160a01b038681166004830152858116602483015262ffffff851660448301527f0000000000000000000000000000000000000000000000000000000000000000169063a167129590606401602060405180830381600087803b158015610de657600080fd5b505af1158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190615621565b90505b6000816001600160a01b031663217ac2376040518163ffffffff1660e01b815260040160806040518083038186803b158015610e5c57600080fd5b505afa158015610e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e94919061564d565b5050509050806001600160a01b031660001415610f5257600080610eb785612d59565b91509150610ec788338685612d97565b610ed387338684612d97565b6040516307caae8760e41b81526001600160a01b038681166004830152851690637caae870906024016040805180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d91906156a1565b505050505b50949350505050565b4715610f6b57610f6b3347612f06565b565b610f773382612fbe565b610fdd5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608401610298565b610c8f8383836130b5565b6000610ff3836115c7565b82106110555760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610298565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60008161108b3382612fbe565b6110c65760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b6000838152600d602090815260408083206001808201546001600160501b03168552600c8452828520835160608101855281546001600160a01b03808216808452600160a01b90920462ffffff16978301889052929093015490911693810184905291949193919261113792613260565b60018401546040516331cccfa560e21b8152600160501b8204600290810b6004830152600160681b90920490910b60248201529091506000906001600160a01b0383169063c7333e9490604401602060405180830381600087803b15801561119e57600080fd5b505af11580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d691906156c5565b6003850154600186015460008a815260106020526040812093945091840392600160801b9091046001600160801b0316916112cd91908390611217426132b9565b6000611231876001600160801b031689600160601b6132d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637313ee5a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561128a57600080fd5b505afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906156de565b63ffffffff166133ff565b5080985050878660020160008282546112e6919061571a565b90915550506003860183905560405188815289907f27c6e84eef3760cd0e0fb6f8c672c4f5b750a54260aaf0d73c6f1a2e4146a1139060200160405180910390a250505050505050919050565b610c8f8383836040518060200160405280600081525061220e565b806113593382612fbe565b6113945760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b6000828152600d6020526040902060010154600160801b90046001600160801b0316156114035760405162461bcd60e51b815260206004820152601d60248201527f53686f756c642072656d6f7665206c69717569646974792066697273740000006044820152606401610298565b6000828152600d6020526040902060020154156114625760405162461bcd60e51b815260206004820152601860248201527f53686f756c64206275726e2072546f6b656e20666972737400000000000000006044820152606401610298565b6000828152600d6020526040812081815560018101829055600281018290556003015561148e82613763565b60405182907f8b4991357e151e871deb7e4c435dd6a4d1fc226761c9444f11befe1357fd021490600090a25050565b60006114c860085490565b821061152b5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610298565b6008828154811061153e5761153e615732565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b031680610a4a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610298565b60006001600160a01b0382166116325760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610298565b506001600160a01b031660009081526003602052604090205490565b83804211156116895760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b60007f00000000000000000000000000000000000000000000000000000000000000007f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad89896116d88161380a565b6040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810188905260c0016040516020818303038152906040528051906020012060405160200161174792919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050600061176a88611550565b9050806001600160a01b0316896001600160a01b031614156117de5760405162461bcd60e51b815260206004820152602760248201527f4552433732315065726d69743a20617070726f76616c20746f2063757272656e6044820152663a1037bbb732b960c91b6064820152608401610298565b803b156118e957604080516020810187905280820186905260f888901b6001600160f81b0319166060820152815160418183030181526061820192839052630b135d3f60e11b9092526001600160a01b03831691631626ba7e91611846918691606501615748565b60206040518083038186803b15801561185e57600080fd5b505afa158015611872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118969190615761565b6001600160e01b031916631626ba7e60e01b146118e45760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610298565b6119f2565b6040805160008082526020820180845285905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561193d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166119a05760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610298565b816001600160a01b0316816001600160a01b0316146119f05760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610298565b505b6119fc8989612ce3565b505050505050505050565b606060018054610a5f906155ec565b600080808335611a263382612fbe565b611a615760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b608085013580421115611aa05760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b85356000908152600d602090815260409182902060018101549092600160801b9091046001600160801b031691611adb918a01908a0161577e565b6001600160801b0316816001600160801b03161015611b3c5760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e74206c6971756964697479000000000000000000006044820152606401610298565b6001828101546001600160501b03166000908152600c60209081526040808320815160608101835281546001600160a01b03808216808452600160a01b90920462ffffff16958301869052929096015490911691810182905293611ba292909190613260565b90506000816001600160a01b031663a34123a786600101600a9054906101000a900460020b87600101600d9054906101000a900460020b8e6020016020810190611bec919061577e565b6040516001600160e01b031960e086901b168152600293840b60048201529190920b60248201526001600160801b039091166044820152606401606060405180830381600087803b158015611c4057600080fd5b505af1158015611c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7891906157a7565b919b509950905060408b01358a10801590611c9757508a606001358910155b611cd85760405162461bcd60e51b81526020600482015260126024820152714c6f772072657475726e20616d6f756e747360701b6044820152606401610298565b600080866003015483039050611d35601060008f600001358152602001908152602001600020878f6020016020810190611d12919061577e565b611d1b426132b9565b60006112318c6001600160801b031688600160601b6132d1565b809350819b50505089876002016000828254611d51919061571a565b9091555050600387018390558115611de65760405163c20830d760e01b815260048101839052600160248201526001600160a01b0385169063c20830d7906044016040805180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de391906156a1565b50505b611df660408e0160208f0161577e565b611e0090876157d5565b8760010160106101000a8154816001600160801b0302191690836001600160801b031602179055508c600001357f69cee805c1d44cd9de89762e23b7854dd7143ed210df80cf67af64a142088c1e8e6020016020810190611e61919061577e565b8e8e8e604051611e9594939291906001600160801b0394909416845260208401929092526040830152606082015260800190565b60405180910390a25050505050505050509193909250565b6000611ebb828401846157fd565b905080602001516001600160a01b031681600001516001600160a01b031610611f315760405162461bcd60e51b815260206004820152602260248201527f4c697175696469747948656c7065723a2077726f6e6720746f6b656e206f726460448201526132b960f11b6064820152608401610298565b6000611f4a826000015183602001518460400151613260565b9050336001600160a01b03821614611fb55760405162461bcd60e51b815260206004820152602860248201527f4c697175696469747948656c7065723a20696e76616c69642063616c6c626163604482015267359039b2b73232b960c11b6064820152608401610298565b8515611fcf57611fcf826000015183606001513389612d97565b8415611fe957611fe9826020015183606001513388612d97565b505050505050565b6001600160a01b03821633141561204a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610298565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60608167ffffffffffffffff8111156120d1576120d1615401565b60405190808252806020026020018201604052801561210457816020015b60608152602001906001900390816120ef5790505b50905060005b82811015612207576000803086868581811061212857612128615732565b905060200281019061213a9190615880565b6040516121489291906158ce565b600060405180830381855af49150503d8060008114612183576040519150601f19603f3d011682016040523d82523d6000602084013e612188565b606091505b5091509150816121d4576044815110156121a157600080fd5b600481019050808060200190518101906121bb91906158de565b60405162461bcd60e51b8152600401610298919061501a565b808484815181106121e7576121e7615732565b6020026020010181905250505080806121ff9061594c565b91505061210a565b5092915050565b6122183383612fbe565b61227e5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608401610298565b61228a84848484613862565b50505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b1580156122f257600080fd5b505afa158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a91906156c5565b90508281101561237c5760405162461bcd60e51b815260206004820152601160248201527f496e73756666696369656e7420574554480000000000000000000000000000006044820152606401610298565b8015610c8f57604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156123e457600080fd5b505af11580156123f8573d6000803e3d6000fd5b50505050610c8f8282612f06565b6001600160a01b0383166000908152600e602052604090205460ff161561246f5760405162461bcd60e51b815260206004820152601760248201527f43616e206e6f74207472616e736665722072546f6b656e0000000000000000006044820152606401610298565b610c8f8383836138e0565b600080808060e0850135804211156124be5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b6000600d60008860000135815260200190815260200160002090506000600c60008360010160009054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020019081526020016000206040518060600160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681525050905060008061268c60405180610160016040528085600001516001600160a01b0316815260200185604001516001600160a01b03168152602001856020015162ffffff168152602001306001600160a01b0316815260200186600101600a9054906101000a900460020b60020b815260200186600101600d9054906101000a900460020b60020b81526020018c6020016002806020026040519081016040528092919082600260200280828437600092019190915250505081526060808e013560208301526080808f0135604084015260a08f01359183019190915260c08e01359101526139be565b600189015460038a0154959e50939c50919a509094509250600160801b90046001600160801b03169082146127245760038501548b356000908152601060205260409020908303906126fd90838d6126e3426132b9565b6001611231886001600160801b031688600160601b6132d1565b508098505087866002016000828254612716919061571a565b909155505050600385018290555b898560010160108282829054906101000a90046001600160801b031661274a9190615967565b82546101009290920a6001600160801b0381810219909316918316021790915560408051918d168252602082018c905281018a9052606081018990528c3591507fc8e69b000c15ddb3ea50af40fe8183b454b2c93ed4150db536b1abf997eb55739060800160405180910390a25050505050509193509193565b6000818152600260205260409020546060906001600160a01b031661282b5760405162461bcd60e51b815260206004820152601160248201527f4e6f6e6578697374656e7420746f6b656e0000000000000000000000000000006044820152606401610298565b60405163e9dc637560e01b8152306004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063e9dc63759060440160006040518083038186803b15801561289157600080fd5b505afa1580156128a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4a91908101906158de565b6000806000806128dc85613caa565b9296509094509250905061291d6128f2426132b9565b604080516080810182526000606082015263ffffffff92909216808352602083018190529082015290565b60008581526010602090815260409182902083518154928501519385015163ffffffff908116600160401b026bffffffff0000000000000000199582166401000000000267ffffffffffffffff199095169190921617929092179290921617815560609091015160019091015592949193509190565b6000808083356129a33382612fbe565b6129de5760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b606085013580421115612a1d5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b85356000908152600d602052604090206002810154955085612a815760405162461bcd60e51b815260206004820152601160248201527f4e6f2072546f6b656e20746f206275726e0000000000000000000000000000006044820152606401610298565b6001818101546001600160501b03166000908152600c60209081526040808320815160608101835281546001600160a01b03808216808452600160a01b90920462ffffff16958301869052929096015490911691810182905293612ae792909190613260565b6000600285018190556040516370a0823160e01b8152306004820152919250906001600160a01b038316906370a082319060240160206040518083038186803b158015612b3357600080fd5b505afa158015612b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6b91906156c5565b9050816001600160a01b031663c20830d7828b11612b89578a612b8b565b825b6040516001600160e01b031960e084901b1681526004810191909152600060248201526044016040805180830381600087803b158015612bca57600080fd5b505af1158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0291906156a1565b909850965060208a01358810801590612c1f575089604001358710155b612c605760405162461bcd60e51b81526020600482015260126024820152714c6f772072657475726e20616d6f756e747360701b6044820152606401610298565b6040518981528a35907f6a8f6875dfe6216074f03fe58aa813dcfe512ccd9d5646968bbbd4dddcc044329060200160405180910390a25050505050509193909250565b60006001600160e01b03198216631e7c553160e21b1480612cd457506001600160e01b03198216633eea15eb60e11b145b80610a4a5750610a4a82614008565b6000818152600d6020526040902080546001600160601b0316600160601b6001600160a01b038516908102919091179091558190612d2082611550565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612d756064600160601b6001600160a01b03861661402d565b9150612d9060646001600160a01b038516600160601b61402d565b9050915091565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316148015612dd85750804710155b15612efa577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e3857600080fd5b505af1158015612e4c573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb92506044019050602060405180830381600087803b158015612ebc57600080fd5b505af1158015612ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef49190615992565b5061228a565b61228a84828585614068565b6001600160a01b038216301415612f1b575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612f68576040519150601f19603f3d011682016040523d82523d6000602084013e612f6d565b606091505b5050905080610c8f5760405162461bcd60e51b815260206004820152601360248201527f7472616e7366657220657468206661696c6564000000000000000000000000006044820152606401610298565b6000818152600260205260408120546001600160a01b03166130375760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610298565b600061304283611550565b9050806001600160a01b0316846001600160a01b0316148061307d5750836001600160a01b031661307284610ae2565b6001600160a01b0316145b806130ad57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166130c882611550565b6001600160a01b0316146131305760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610298565b6001600160a01b0382166131925760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610298565b61319d8383836140a7565b6131a8600082612ce3565b6001600160a01b03831660009081526003602052604081208054600192906131d19084906159af565b90915550506001600160a01b03821660009081526003602052604081208054600192906131ff90849061571a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006132af7f00000000000000000000000000000000000000000000000000000000000000008585857f000000000000000000000000000000000000000000000000000000000000000061415f565b90505b9392505050565b8063ffffffff811681146132cc57600080fd5b919050565b600080806000198587098587029250828110838203039150508060001415613338576000841161332d5760405162461bcd60e51b8152602060048201526007602482015266302064656e6f6d60c81b6044820152606401610298565b5082900490506132b2565b8084116133875760405162461bcd60e51b815260206004820152600e60248201527f64656e6f6d203c3d2070726f64310000000000000000000000000000000000006044820152606401610298565b60008486880980840393811190920391905060006133a78619600161571a565b8616958690049560026003880281188089028203028089028203028089028203028089028203028089028203028089029091030260008290038290046001019490940294049390931791909102925050509392505050565b60408051608081018252885463ffffffff8082168352640100000000820481166020840152600160401b90910416918101919091526001880154606082015260009081908361348157606081015161345e578460009250925050613757565b600060018b0155606081015161347590869061571a565b60009250925050613757565b60006134c8620186a062ffffff1686620186a062ffffff1685602001518c6134a991906159c6565b63ffffffff166134b991906159e3565b6134c39190615a18565b614238565b90506000826000015163ffffffff16836040015163ffffffff161115613526578251604084015161352191620186a09161350291906159c6565b63ffffffff16620186a062ffffff1686600001518d6134a991906159c6565b61352b565b620186a05b606084015190915061353f8189848661424e565b606086018290529650156135e75760608401516135e29061356490620186a0906159e3565b61357184620186a06159af565b83876040015163ffffffff1661358791906159e3565b61359191906159e3565b61359e86620186a06159af565b8b8b896020015163ffffffff166135b5919061571a565b6135bf91906159e3565b6135c991906159e3565b6135d3919061571a565b6135dd9190615a18565b6132b9565b6135e9565b895b8d5463ffffffff91909116600160401b026bffffffff000000000000000019909116178d55506000915087905061362957613624898b6157d5565b613633565b613633898b615967565b6001600160801b0316905086156136d3576136ac6135dd61366363ffffffff8b166001600160801b038d166159e3565b8c6001600160801b0316613692866020015163ffffffff168a8e63ffffffff1661368d91906159af565b6142a2565b61369c91906159e3565b6136a6919061571a565b836142b2565b8b5463ffffffff919091166401000000000267ffffffff0000000019909116178b55613739565b600082606001511180156136ef57506001600160801b03891615155b1561373957896001600160801b0316896001600160801b0316836060015161371791906159e3565b6137219190615a18565b9250828260600181815161373591906159af565b9052505b506060015160018a0155885463ffffffff191663ffffffff87161789555b97509795505050505050565b600061376e82611550565b905061377c816000846140a7565b613787600083612ce3565b6001600160a01b03811660009081526003602052604081208054600192906137b09084906159af565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000818152600d6020526040812080546001600160601b0316908261382e83615a2c565b91906101000a8154816001600160601b0302191690836001600160601b031602179055506001600160601b03169050919050565b61386d8484846130b5565b613879848484846142e4565b61228a5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610298565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b15801561392257600080fd5b505afa158015613936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395a91906156c5565b9050828110156139ac5760405162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e7420746f6b656e00000000000000000000000000006044820152606401610298565b801561228a5761228a84823085614068565b600080600080600085602001516001600160a01b031686600001516001600160a01b031610613a3b5760405162461bcd60e51b8152602060048201526024808201527f4c697175696469747948656c7065723a20696e76616c696420746f6b656e206f604482015263393232b960e11b6064820152608401610298565b613a52866000015187602001518860400151613260565b90506000816001600160a01b031663217ac2376040518163ffffffff1660e01b815260040160806040518083038186803b158015613a8f57600080fd5b505afa158015613aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac7919061564d565b50505090506000613adb886080015161443c565b90506000613aec8960a0015161443c565b9050613b048383838c60e001518d610100015161476f565b9750505050806001600160a01b0316630c1225b7876060015188608001518960a001518a60c001518a613bb28d600001518e602001518f6040015160408051608080820183526001600160a01b03958616808352948616602080840191825262ffffff95861684860190815233606095860190815286519283019890985291518816818601529051909416918401919091529251909316818301528251808203909201825260a00190915290565b6040518763ffffffff1660e01b8152600401613bd396959493929190615a53565b606060405180830381600087803b158015613bed57600080fd5b505af1158015613c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2591906157a7565b61012089015192965090945092508410801590613c4757508561014001518310155b613ca15760405162461bcd60e51b815260206004820152602560248201527f4c697175696469747948656c7065723a20707269636520736c69707061676520604482015264636865636b60d81b6064820152608401610298565b91939590929450565b600080808061018085013580421115613cef5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b600080613df26040518061016001604052808a6000016020810190613d149190614fa5565b6001600160a01b031681526020018a6020016020810190613d359190614fa5565b6001600160a01b03168152602001613d5360608c0160408d01615ac2565b62ffffff168152306020820152604001613d7360808c0160608d01615add565b60020b8152602001613d8b60a08c0160808d01615add565b60020b81526020018a60a00160028060200260405190810160405280929190826002602002808284376000920191909152505050815260e08b013560208201526101008b013560408201526101208b013560608201526101408b01356080909101526139be565b600b8054959b5093995091975090945092506000613e0f8361594c565b909155509650613e30613e2a6101808a016101608b01614fa5565b8861480b565b6000613e6883613e4360208c018c614fa5565b613e5360408d0160208e01614fa5565b613e6360608e0160408f01615ac2565b614959565b905060405180610100016040528060006001600160601b0316815260200160006001600160a01b03168152602001826001600160501b031681526020018a6060016020810190613eb89190615add565b60020b8152602001613ed060a08c0160808d01615add565b600290810b82526001600160801b038a811660208085018290526000604080870182905260609687018a90528f8252600d8352908190208751888401516001600160a01b0316600160601b026001600160601b03909116178155878201516001820180548a8a015160808c015160a08d01518a16600160801b0262ffffff918216600160681b02909a166cffffffffffffffffffffffffff91909216600160501b026cffffffffffffffffffffffffff199093166001600160501b03958616179290921791909116179690961790955560c08801519581019590955560e09096015160039094019390935584519081529182018a9052928101889052918316918a917f2aa61af31176eaad0779e2bd456bd28a44d1a68b677072b5ada024becc1b6d30910160405180910390a3505050509193509193565b60006001600160e01b0319821663780e9d6360e01b1480610a4a5750610a4a82614a89565b600061403a8484846132d1565b90506000828061404c5761404c615a02565b84860911156132b2578061405f8161594c565b95945050505050565b6001600160a01b0382163014156140925761408d6001600160a01b0385168285614ad9565b61228a565b61228a6001600160a01b038516838386614b3c565b6001600160a01b038316614102576140fd81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b614125565b816001600160a01b0316836001600160a01b031614614125576141258382614b74565b6001600160a01b03821661413c57610c8f81614c11565b826001600160a01b0316826001600160a01b031614610c8f57610c8f8282614cc0565b6000836001600160a01b0316856001600160a01b031610614181578385614184565b84845b604080516001600160a01b03808516602083015283169181019190915262ffffff86166060820152919650945060009087906080016040516020818303038152906040528051906020012084604051602001614215939291906001600160f81b0319815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f198184030181529190528051602090910120979650505050505050565b600081831061424757816132b2565b5090919050565b6000808061425c868861571a565b9050620186a061426c87866159e3565b61427689886159e3565b614280919061571a565b61428a9190615a18565b915061429682826159af565b92505094509492505050565b60008183101561424757816132b2565b60006142be8284615afa565b156142ca5760016142cd565b60005b60ff166142da8385615a18565b6132b2919061571a565b60006001600160a01b0384163b1561443157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614328903390899088908890600401615b0e565b602060405180830381600087803b15801561434257600080fd5b505af1925050508015614372575060408051601f3d908101601f1916820190925261436f91810190615761565b60015b614417573d8080156143a0576040519150601f19603f3d011682016040523d82523d6000602084013e6143a5565b606091505b50805161440f5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610298565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506130ad565b506001949350505050565b60008060008360020b12614453578260020b61445b565b8260020b6000035b9050620d89e88111156144945760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401610298565b6000600182166144a857600160801b6144ba565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156144ee576ffff97272373d413259a46990580e213a0260801c5b600482161561450d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561452c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561454b576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561456a576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615614589576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156145a8576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156145c8576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156145e8576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614608576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614628576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615614648576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615614668576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615614688576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156146a8576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156146c9576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156146e9576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614708576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614725576b048a170391f7dc42444e8fa20260801c5b60008460020b131561474657806000198161474257614742615a02565b0490505b64010000000081061561475a57600161475d565b60005b60ff16602082901c0192505050919050565b6000846001600160a01b0316866001600160a01b03161161479c57614795858585614d04565b905061405f565b836001600160a01b0316866001600160a01b0316106147c057614795858584614d48565b60006147cd878686614d04565b905060006147dc878986614d48565b9050806001600160801b0316826001600160801b0316106147fd57806147ff565b815b98975050505050505050565b6001600160a01b0382166148615760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610298565b6000818152600260205260409020546001600160a01b0316156148c65760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610298565b6148d2600083836140a7565b6001600160a01b03821660009081526003602052604081208054600192906148fb90849061571a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0384166000908152600f60205260409020546001600160501b0316806130ad57600a80546001600160501b031690600061499983615b4a565b82546101009290920a6001600160501b038181021990931691831602179091556001600160a01b039687166000818152600f60209081526040808320805469ffffffffffffffffffff191695871695861790558051606081018252998b168a5262ffffff9788168a8301908152988b168a8201908152948352600c825280832099518a549951908c1676ffffffffffffffffffffffffffffffffffffffffffffff19909a1699909917600160a01b99909816989098029690961788559151600197880180546001600160a01b0319169190991617909755958652600e909252509220805460ff1916909117905590565b60006001600160e01b031982166380ac58cd60e01b1480614aba57506001600160e01b03198216635b5e139f60e01b145b80610a4a57506301ffc9a760e01b6001600160e01b0319831614610a4a565b6040516001600160a01b038316602482015260448101829052610c8f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614d67565b6040516001600160a01b038085166024830152831660448201526064810182905261228a9085906323b872dd60e01b90608401614b05565b60006001614b81846115c7565b614b8b91906159af565b600083815260076020526040902054909150808214614bde576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090614c23906001906159af565b60008381526009602052604081205460088054939450909284908110614c4b57614c4b615732565b906000526020600020015490508060088381548110614c6c57614c6c615732565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480614ca457614ca4615b67565b6001900381819060005260206000200160009055905550505050565b6000614ccb836115c7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b600080614d28856001600160a01b0316856001600160a01b0316600160601b6132d1565b905061405f614d4382858888036001600160a01b03166132d1565b614e39565b60006132af614d4383600160601b8787036001600160a01b03166132d1565b6000614dbc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e4f9092919063ffffffff16565b805190915015610c8f5780806020019051810190614dda9190615992565b610c8f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610298565b806001600160801b03811681146132cc57600080fd5b60606132af848460008585843b614ea85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610298565b600080866001600160a01b03168587604051614ec49190615b7d565b60006040518083038185875af1925050503d8060008114614f01576040519150601f19603f3d011682016040523d82523d6000602084013e614f06565b606091505b5091509150614f16828286614f21565b979650505050505050565b60608315614f305750816132b2565b825115614f405782518084602001fd5b8160405162461bcd60e51b8152600401610298919061501a565b6001600160e01b031981168114614f7057600080fd5b50565b600060208284031215614f8557600080fd5b81356132b281614f5a565b6001600160a01b0381168114614f7057600080fd5b600060208284031215614fb757600080fd5b81356132b281614f90565b60005b83811015614fdd578181015183820152602001614fc5565b8381111561228a5750506000910152565b60008151808452615006816020860160208601614fc2565b601f01601f19169290920160200192915050565b6020815260006132b26020830184614fee565b60006020828403121561503f57600080fd5b5035919050565b6000806040838503121561505957600080fd5b823561506481614f90565b946020939093013593505050565b803562ffffff811681146132cc57600080fd5b6000806000806080858703121561509b57600080fd5b84356150a681614f90565b935060208501356150b681614f90565b92506150c460408601615072565b915060608501356150d481614f90565b939692955090935050565b6000806000606084860312156150f457600080fd5b83356150ff81614f90565b9250602084013561510f81614f90565b929592945050506040919091013590565b60008060008060008060c0878903121561513957600080fd5b863561514481614f90565b95506020870135945060408701359350606087013560ff8116811461516857600080fd5b9598949750929560808101359460a0909101359350915050565b600060a0828403121561519457600080fd5b50919050565b6000610160820190506001600160601b0384511682526001600160a01b0360208501511660208301526001600160501b03604085015116604083015260608401516151ea606084018260020b9052565b5060808401516151ff608084018260020b9052565b5060a084015161521a60a08401826001600160801b03169052565b5060c0848101519083015260e0808501519083015282516001600160a01b03908116610100840152602084015162ffffff166101208401526040840151166101408301526132b2565b6000806000806060858703121561527957600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561529f57600080fd5b818701915087601f8301126152b357600080fd5b8135818111156152c257600080fd5b8860208285010111156152d457600080fd5b95989497505060200194505050565b8015158114614f7057600080fd5b6000806040838503121561530457600080fd5b823561530f81614f90565b9150602083013561531f816152e3565b809150509250929050565b6000806020838503121561533d57600080fd5b823567ffffffffffffffff8082111561535557600080fd5b818501915085601f83011261536957600080fd5b81358181111561537857600080fd5b8660208260051b850101111561538d57600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156153f457603f198886030184526153e2858351614fee565b945092850192908501906001016153c6565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561544057615440615401565b604052919050565b600067ffffffffffffffff82111561546257615462615401565b50601f01601f191660200190565b6000806000806080858703121561548657600080fd5b843561549181614f90565b935060208501356154a181614f90565b925060408501359150606085013567ffffffffffffffff8111156154c457600080fd5b8501601f810187136154d557600080fd5b80356154e86154e382615448565b615417565b8181528860208385010111156154fd57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561553257600080fd5b82359150602083013561531f81614f90565b60008060006060848603121561555957600080fd5b833561556481614f90565b925060208401359150604084013561557b81614f90565b809150509250925092565b6000610100828403121561519457600080fd5b600080604083850312156155ac57600080fd5b82356155b781614f90565b9150602083013561531f81614f90565b60006101a0828403121561519457600080fd5b60006080828403121561519457600080fd5b600181811c9082168061560057607f821691505b6020821081141561519457634e487b7160e01b600052602260045260246000fd5b60006020828403121561563357600080fd5b81516132b281614f90565b8060020b8114614f7057600080fd5b6000806000806080858703121561566357600080fd5b845161566e81614f90565b602086015190945061567f8161563e565b60408601519093506156908161563e565b60608601519092506150d4816152e3565b600080604083850312156156b457600080fd5b505080516020909101519092909150565b6000602082840312156156d757600080fd5b5051919050565b6000602082840312156156f057600080fd5b815163ffffffff811681146132b257600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561572d5761572d615704565b500190565b634e487b7160e01b600052603260045260246000fd5b8281526040602082015260006132af6040830184614fee565b60006020828403121561577357600080fd5b81516132b281614f5a565b60006020828403121561579057600080fd5b81356001600160801b03811681146132b257600080fd5b6000806000606084860312156157bc57600080fd5b8351925060208401519150604084015190509250925092565b60006001600160801b03838116908316818110156157f5576157f5615704565b039392505050565b60006080828403121561580f57600080fd5b6040516080810181811067ffffffffffffffff8211171561583257615832615401565b604052823561584081614f90565b8152602083013561585081614f90565b602082015261586160408401615072565b6040820152606083013561587481614f90565b60608201529392505050565b6000808335601e1984360301811261589757600080fd5b83018035915067ffffffffffffffff8211156158b257600080fd5b6020019150368190038213156158c757600080fd5b9250929050565b8183823760009101908152919050565b6000602082840312156158f057600080fd5b815167ffffffffffffffff81111561590757600080fd5b8201601f8101841361591857600080fd5b80516159266154e382615448565b81815285602083850101111561593b57600080fd5b61405f826020830160208601614fc2565b600060001982141561596057615960615704565b5060010190565b60006001600160801b0380831681851680830382111561598957615989615704565b01949350505050565b6000602082840312156159a457600080fd5b81516132b2816152e3565b6000828210156159c1576159c1615704565b500390565b600063ffffffff838116908316818110156157f5576157f5615704565b60008160001904831182151516156159fd576159fd615704565b500290565b634e487b7160e01b600052601260045260246000fd5b600082615a2757615a27615a02565b500490565b60006001600160601b0380831681811415615a4957615a49615704565b6001019392505050565b6001600160a01b038716815260006020600288810b8285015287810b6040850152606084018760005b83811015615a9a578151840b83529184019190840190600101615a7c565b50505050506001600160801b03841660a083015260e060c08301526147ff60e0830184614fee565b600060208284031215615ad457600080fd5b6132b282615072565b600060208284031215615aef57600080fd5b81356132b28161563e565b600082615b0957615b09615a02565b500690565b60006001600160a01b03808716835280861660208401525083604083015260806060830152615b406080830184614fee565b9695505050505050565b60006001600160501b0380831681811415615a4957615a49615704565b634e487b7160e01b600052603160045260246000fd5b60008251615b8f818460208701614fc2565b919091019291505056fea164736f6c6343000809000a4b7962657253776170207632204e465420506f736974696f6e73204d616e61676572000000000000000000000000c7a590291e07b9fe9e64b86c58fd8fc764308c4a000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f00000000000000000000000058f1d0f9bff9d695010c92fb93d100cef5113f3e

Deployed ByteCode

0x6080604052600436106102345760003560e01c806370a082311161012e578063b44a6ac9116100ab578063c45a01551161006f578063c45a015514610912578063c87b56dd14610946578063e985e9c514610966578063ea540632146109af578063ed0d8dd2146109ea57600080fd5b8063b44a6ac914610809578063b88d4fde1461088f578063bac37ef7146108af578063bf1316c1146108c2578063c238a3a3146108d557600080fd5b806399fbab88116100f257806399fbab88146106105780639f382e9b14610775578063a22cb46514610795578063ac9650d8146107b5578063ad5c4648146107d557600080fd5b806370a082311461056a57806375794a3c1461058a5780637ac2ff7b146105a057806395d89b41146105c057806398e04d77146105d557600080fd5b806323b872dd116101bc57806342842e0e1161018057806342842e0e146104c157806342966c68146104e15780634bfe3398146104f45780634f6ccce71461052a5780636352211e1461054a57600080fd5b806323b872dd146103f95780632f745c591461041957806330adf81f14610439578063311e79941461046d5780633644e5151461048d57600080fd5b8063095ea7b311610203578063095ea7b31461036757806318160ddd1461038757806318e56131146103a65780631c49584a146103de5780631faa4133146103f157600080fd5b806301ffc9a7146102a857806303a6dab3146102dd57806306fdde031461030d578063081812fc1461032f57600080fd5b366102a357336001600160a01b037f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f16146102a15760405162461bcd60e51b815260206004820152600860248201526709cdee840ae8aa8960c31b60448201526064015b60405180910390fd5b005b600080fd5b3480156102b457600080fd5b506102c86102c3366004614f73565b610a0a565b60405190151581526020015b60405180910390f35b3480156102e957600080fd5b506102c86102f8366004614fa5565b600e6020526000908152604090205460ff1681565b34801561031957600080fd5b50610322610a50565b6040516102d4919061501a565b34801561033b57600080fd5b5061034f61034a36600461502d565b610ae2565b6040516001600160a01b0390911681526020016102d4565b34801561037357600080fd5b506102a1610382366004615046565b610b7e565b34801561039357600080fd5b506008545b6040519081526020016102d4565b3480156103b257600080fd5b50600a546103c6906001600160501b031681565b6040516001600160501b0390911681526020016102d4565b61034f6103ec366004615085565b610c94565b6102a1610f5b565b34801561040557600080fd5b506102a16104143660046150df565b610f6d565b34801561042557600080fd5b50610398610434366004615046565b610fe8565b34801561044557600080fd5b506103987f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad81565b34801561047957600080fd5b5061039861048836600461502d565b61107e565b34801561049957600080fd5b506103987fbcc6e5b876a5e6f117fbeace13bc1d66575d3c1134d7e09c17d8f5003d7fcd1881565b3480156104cd57600080fd5b506102a16104dc3660046150df565b611333565b6102a16104ef36600461502d565b61134e565b34801561050057600080fd5b506103c661050f366004614fa5565b600f602052600090815260409020546001600160501b031681565b34801561053657600080fd5b5061039861054536600461502d565b6114bd565b34801561055657600080fd5b5061034f61056536600461502d565b611550565b34801561057657600080fd5b50610398610585366004614fa5565b6115c7565b34801561059657600080fd5b50610398600b5481565b3480156105ac57600080fd5b506102a16105bb366004615120565b61164e565b3480156105cc57600080fd5b50610322611a07565b3480156105e157600080fd5b506105f56105f0366004615182565b611a16565b604080519384526020840192909252908201526060016102d4565b34801561061c57600080fd5b5061076761062b36600461502d565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152604080516060810182526000808252602082018190529181019190915250506000908152600d6020908152604080832081516101008101835281546001600160601b0381168252600160601b90046001600160a01b03908116828601526001808401546001600160501b038116848701819052600160501b8204600290810b606080880191909152600160681b8404820b6080880152600160801b9093046001600160801b031660a087015286015460c086015260039095015460e0850152938752600c8652958490208451938401855280548083168552600160a01b900462ffffff16958401959095529390940154909216908201529091565b6040516102d492919061519a565b34801561078157600080fd5b506102a1610790366004615263565b611ead565b3480156107a157600080fd5b506102a16107b03660046152f1565b611ff1565b6107c86107c336600461532a565b6120b6565b6040516102d4919061539f565b3480156107e157600080fd5b5061034f7f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f81565b34801561081557600080fd5b5061085d61082436600461502d565b6010602052600090815260409020805460019091015463ffffffff808316926401000000008104821692600160401b9091049091169084565b6040516102d4949392919063ffffffff9485168152928416602084015292166040820152606081019190915260800190565b34801561089b57600080fd5b506102a16108aa366004615470565b61220e565b6102a16108bd36600461551f565b612290565b6102a16108d0366004615544565b612406565b6108e86108e3366004615586565b61247a565b604080516001600160801b03909516855260208501939093529183015260608201526080016102d4565b34801561091e57600080fd5b5061034f7f000000000000000000000000c7a590291e07b9fe9e64b86c58fd8fc764308c4a81565b34801561095257600080fd5b5061032261096136600461502d565b6127c4565b34801561097257600080fd5b506102c8610981366004615599565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6109c26109bd3660046155c7565b6128cd565b604080519485526001600160801b0390931660208501529183015260608201526080016102d4565b3480156109f657600080fd5b506105f5610a053660046155da565b612993565b60006001600160e01b03198216633eea15eb60e11b1480610a3b57506001600160e01b03198216638f80888b60e01b145b80610a4a5750610a4a82612ca3565b92915050565b606060008054610a5f906155ec565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8b906155ec565b8015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b5050505050905090565b6000818152600260205260408120546001600160a01b0316610b5b5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610298565b506000908152600d6020526040902054600160601b90046001600160a01b031690565b6000610b8982611550565b9050806001600160a01b0316836001600160a01b03161415610bf75760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610298565b336001600160a01b0382161480610c135750610c138133610981565b610c855760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610298565b610c8f8383612ce3565b505050565b6000836001600160a01b0316856001600160a01b031610610cb457600080fd5b604051630b4c774160e11b81526001600160a01b038681166004830152858116602483015262ffffff851660448301527f000000000000000000000000c7a590291e07b9fe9e64b86c58fd8fc764308c4a1690631698ee829060640160206040518083038186803b158015610d2857600080fd5b505afa158015610d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d609190615621565b90506001600160a01b038116610e215760405163a167129560e01b81526001600160a01b038681166004830152858116602483015262ffffff851660448301527f000000000000000000000000c7a590291e07b9fe9e64b86c58fd8fc764308c4a169063a167129590606401602060405180830381600087803b158015610de657600080fd5b505af1158015610dfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1e9190615621565b90505b6000816001600160a01b031663217ac2376040518163ffffffff1660e01b815260040160806040518083038186803b158015610e5c57600080fd5b505afa158015610e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e94919061564d565b5050509050806001600160a01b031660001415610f5257600080610eb785612d59565b91509150610ec788338685612d97565b610ed387338684612d97565b6040516307caae8760e41b81526001600160a01b038681166004830152851690637caae870906024016040805180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d91906156a1565b505050505b50949350505050565b4715610f6b57610f6b3347612f06565b565b610f773382612fbe565b610fdd5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608401610298565b610c8f8383836130b5565b6000610ff3836115c7565b82106110555760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610298565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b60008161108b3382612fbe565b6110c65760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b6000838152600d602090815260408083206001808201546001600160501b03168552600c8452828520835160608101855281546001600160a01b03808216808452600160a01b90920462ffffff16978301889052929093015490911693810184905291949193919261113792613260565b60018401546040516331cccfa560e21b8152600160501b8204600290810b6004830152600160681b90920490910b60248201529091506000906001600160a01b0383169063c7333e9490604401602060405180830381600087803b15801561119e57600080fd5b505af11580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d691906156c5565b6003850154600186015460008a815260106020526040812093945091840392600160801b9091046001600160801b0316916112cd91908390611217426132b9565b6000611231876001600160801b031689600160601b6132d1565b7f000000000000000000000000c7a590291e07b9fe9e64b86c58fd8fc764308c4a6001600160a01b0316637313ee5a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561128a57600080fd5b505afa15801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906156de565b63ffffffff166133ff565b5080985050878660020160008282546112e6919061571a565b90915550506003860183905560405188815289907f27c6e84eef3760cd0e0fb6f8c672c4f5b750a54260aaf0d73c6f1a2e4146a1139060200160405180910390a250505050505050919050565b610c8f8383836040518060200160405280600081525061220e565b806113593382612fbe565b6113945760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b6000828152600d6020526040902060010154600160801b90046001600160801b0316156114035760405162461bcd60e51b815260206004820152601d60248201527f53686f756c642072656d6f7665206c69717569646974792066697273740000006044820152606401610298565b6000828152600d6020526040902060020154156114625760405162461bcd60e51b815260206004820152601860248201527f53686f756c64206275726e2072546f6b656e20666972737400000000000000006044820152606401610298565b6000828152600d6020526040812081815560018101829055600281018290556003015561148e82613763565b60405182907f8b4991357e151e871deb7e4c435dd6a4d1fc226761c9444f11befe1357fd021490600090a25050565b60006114c860085490565b821061152b5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610298565b6008828154811061153e5761153e615732565b90600052602060002001549050919050565b6000818152600260205260408120546001600160a01b031680610a4a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610298565b60006001600160a01b0382166116325760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610298565b506001600160a01b031660009081526003602052604090205490565b83804211156116895760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b60007fbcc6e5b876a5e6f117fbeace13bc1d66575d3c1134d7e09c17d8f5003d7fcd187f49ecf333e5b8c95c40fdafc95c1ad136e8914a8fb55e9dc8bb01eaa83a2df9ad89896116d88161380a565b6040805160208101959095526001600160a01b03909316928401929092526060830152608082015260a0810188905260c0016040516020818303038152906040528051906020012060405160200161174792919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050600061176a88611550565b9050806001600160a01b0316896001600160a01b031614156117de5760405162461bcd60e51b815260206004820152602760248201527f4552433732315065726d69743a20617070726f76616c20746f2063757272656e6044820152663a1037bbb732b960c91b6064820152608401610298565b803b156118e957604080516020810187905280820186905260f888901b6001600160f81b0319166060820152815160418183030181526061820192839052630b135d3f60e11b9092526001600160a01b03831691631626ba7e91611846918691606501615748565b60206040518083038186803b15801561185e57600080fd5b505afa158015611872573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118969190615761565b6001600160e01b031916631626ba7e60e01b146118e45760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610298565b6119f2565b6040805160008082526020820180845285905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561193d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166119a05760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610298565b816001600160a01b0316816001600160a01b0316146119f05760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610298565b505b6119fc8989612ce3565b505050505050505050565b606060018054610a5f906155ec565b600080808335611a263382612fbe565b611a615760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b608085013580421115611aa05760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b85356000908152600d602090815260409182902060018101549092600160801b9091046001600160801b031691611adb918a01908a0161577e565b6001600160801b0316816001600160801b03161015611b3c5760405162461bcd60e51b815260206004820152601660248201527f496e73756666696369656e74206c6971756964697479000000000000000000006044820152606401610298565b6001828101546001600160501b03166000908152600c60209081526040808320815160608101835281546001600160a01b03808216808452600160a01b90920462ffffff16958301869052929096015490911691810182905293611ba292909190613260565b90506000816001600160a01b031663a34123a786600101600a9054906101000a900460020b87600101600d9054906101000a900460020b8e6020016020810190611bec919061577e565b6040516001600160e01b031960e086901b168152600293840b60048201529190920b60248201526001600160801b039091166044820152606401606060405180830381600087803b158015611c4057600080fd5b505af1158015611c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7891906157a7565b919b509950905060408b01358a10801590611c9757508a606001358910155b611cd85760405162461bcd60e51b81526020600482015260126024820152714c6f772072657475726e20616d6f756e747360701b6044820152606401610298565b600080866003015483039050611d35601060008f600001358152602001908152602001600020878f6020016020810190611d12919061577e565b611d1b426132b9565b60006112318c6001600160801b031688600160601b6132d1565b809350819b50505089876002016000828254611d51919061571a565b9091555050600387018390558115611de65760405163c20830d760e01b815260048101839052600160248201526001600160a01b0385169063c20830d7906044016040805180830381600087803b158015611dab57600080fd5b505af1158015611dbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de391906156a1565b50505b611df660408e0160208f0161577e565b611e0090876157d5565b8760010160106101000a8154816001600160801b0302191690836001600160801b031602179055508c600001357f69cee805c1d44cd9de89762e23b7854dd7143ed210df80cf67af64a142088c1e8e6020016020810190611e61919061577e565b8e8e8e604051611e9594939291906001600160801b0394909416845260208401929092526040830152606082015260800190565b60405180910390a25050505050505050509193909250565b6000611ebb828401846157fd565b905080602001516001600160a01b031681600001516001600160a01b031610611f315760405162461bcd60e51b815260206004820152602260248201527f4c697175696469747948656c7065723a2077726f6e6720746f6b656e206f726460448201526132b960f11b6064820152608401610298565b6000611f4a826000015183602001518460400151613260565b9050336001600160a01b03821614611fb55760405162461bcd60e51b815260206004820152602860248201527f4c697175696469747948656c7065723a20696e76616c69642063616c6c626163604482015267359039b2b73232b960c11b6064820152608401610298565b8515611fcf57611fcf826000015183606001513389612d97565b8415611fe957611fe9826020015183606001513388612d97565b505050505050565b6001600160a01b03821633141561204a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610298565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60608167ffffffffffffffff8111156120d1576120d1615401565b60405190808252806020026020018201604052801561210457816020015b60608152602001906001900390816120ef5790505b50905060005b82811015612207576000803086868581811061212857612128615732565b905060200281019061213a9190615880565b6040516121489291906158ce565b600060405180830381855af49150503d8060008114612183576040519150601f19603f3d011682016040523d82523d6000602084013e612188565b606091505b5091509150816121d4576044815110156121a157600080fd5b600481019050808060200190518101906121bb91906158de565b60405162461bcd60e51b8152600401610298919061501a565b808484815181106121e7576121e7615732565b6020026020010181905250505080806121ff9061594c565b91505061210a565b5092915050565b6122183383612fbe565b61227e5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6044820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b6064820152608401610298565b61228a84848484613862565b50505050565b6040516370a0823160e01b81523060048201526000907f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f6001600160a01b0316906370a082319060240160206040518083038186803b1580156122f257600080fd5b505afa158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a91906156c5565b90508281101561237c5760405162461bcd60e51b815260206004820152601160248201527f496e73756666696369656e7420574554480000000000000000000000000000006044820152606401610298565b8015610c8f57604051632e1a7d4d60e01b8152600481018290527f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f6001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156123e457600080fd5b505af11580156123f8573d6000803e3d6000fd5b50505050610c8f8282612f06565b6001600160a01b0383166000908152600e602052604090205460ff161561246f5760405162461bcd60e51b815260206004820152601760248201527f43616e206e6f74207472616e736665722072546f6b656e0000000000000000006044820152606401610298565b610c8f8383836138e0565b600080808060e0850135804211156124be5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b6000600d60008860000135815260200190815260200160002090506000600c60008360010160009054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020019081526020016000206040518060600160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681526020016000820160149054906101000a900462ffffff1662ffffff1662ffffff1681526020016001820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681525050905060008061268c60405180610160016040528085600001516001600160a01b0316815260200185604001516001600160a01b03168152602001856020015162ffffff168152602001306001600160a01b0316815260200186600101600a9054906101000a900460020b60020b815260200186600101600d9054906101000a900460020b60020b81526020018c6020016002806020026040519081016040528092919082600260200280828437600092019190915250505081526060808e013560208301526080808f0135604084015260a08f01359183019190915260c08e01359101526139be565b600189015460038a0154959e50939c50919a509094509250600160801b90046001600160801b03169082146127245760038501548b356000908152601060205260409020908303906126fd90838d6126e3426132b9565b6001611231886001600160801b031688600160601b6132d1565b508098505087866002016000828254612716919061571a565b909155505050600385018290555b898560010160108282829054906101000a90046001600160801b031661274a9190615967565b82546101009290920a6001600160801b0381810219909316918316021790915560408051918d168252602082018c905281018a9052606081018990528c3591507fc8e69b000c15ddb3ea50af40fe8183b454b2c93ed4150db536b1abf997eb55739060800160405180910390a25050505050509193509193565b6000818152600260205260409020546060906001600160a01b031661282b5760405162461bcd60e51b815260206004820152601160248201527f4e6f6e6578697374656e7420746f6b656e0000000000000000000000000000006044820152606401610298565b60405163e9dc637560e01b8152306004820152602481018390527f00000000000000000000000058f1d0f9bff9d695010c92fb93d100cef5113f3e6001600160a01b03169063e9dc63759060440160006040518083038186803b15801561289157600080fd5b505afa1580156128a5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a4a91908101906158de565b6000806000806128dc85613caa565b9296509094509250905061291d6128f2426132b9565b604080516080810182526000606082015263ffffffff92909216808352602083018190529082015290565b60008581526010602090815260409182902083518154928501519385015163ffffffff908116600160401b026bffffffff0000000000000000199582166401000000000267ffffffffffffffff199095169190921617929092179290921617815560609091015160019091015592949193509190565b6000808083356129a33382612fbe565b6129de5760405162461bcd60e51b815260206004820152600c60248201526b139bdd08185c1c1c9bdd995960a21b6044820152606401610298565b606085013580421115612a1d5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b85356000908152600d602052604090206002810154955085612a815760405162461bcd60e51b815260206004820152601160248201527f4e6f2072546f6b656e20746f206275726e0000000000000000000000000000006044820152606401610298565b6001818101546001600160501b03166000908152600c60209081526040808320815160608101835281546001600160a01b03808216808452600160a01b90920462ffffff16958301869052929096015490911691810182905293612ae792909190613260565b6000600285018190556040516370a0823160e01b8152306004820152919250906001600160a01b038316906370a082319060240160206040518083038186803b158015612b3357600080fd5b505afa158015612b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b6b91906156c5565b9050816001600160a01b031663c20830d7828b11612b89578a612b8b565b825b6040516001600160e01b031960e084901b1681526004810191909152600060248201526044016040805180830381600087803b158015612bca57600080fd5b505af1158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c0291906156a1565b909850965060208a01358810801590612c1f575089604001358710155b612c605760405162461bcd60e51b81526020600482015260126024820152714c6f772072657475726e20616d6f756e747360701b6044820152606401610298565b6040518981528a35907f6a8f6875dfe6216074f03fe58aa813dcfe512ccd9d5646968bbbd4dddcc044329060200160405180910390a25050505050509193909250565b60006001600160e01b03198216631e7c553160e21b1480612cd457506001600160e01b03198216633eea15eb60e11b145b80610a4a5750610a4a82614008565b6000818152600d6020526040902080546001600160601b0316600160601b6001600160a01b038516908102919091179091558190612d2082611550565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080612d756064600160601b6001600160a01b03861661402d565b9150612d9060646001600160a01b038516600160601b61402d565b9050915091565b7f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f6001600160a01b0316846001600160a01b0316148015612dd85750804710155b15612efa577f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f6001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e3857600080fd5b505af1158015612e4c573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038681166004830152602482018690527f000000000000000000000000e5d7c2a44ffddf6b295a15c148167daaaf5cf34f16935063a9059cbb92506044019050602060405180830381600087803b158015612ebc57600080fd5b505af1158015612ed0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef49190615992565b5061228a565b61228a84828585614068565b6001600160a01b038216301415612f1b575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612f68576040519150601f19603f3d011682016040523d82523d6000602084013e612f6d565b606091505b5050905080610c8f5760405162461bcd60e51b815260206004820152601360248201527f7472616e7366657220657468206661696c6564000000000000000000000000006044820152606401610298565b6000818152600260205260408120546001600160a01b03166130375760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610298565b600061304283611550565b9050806001600160a01b0316846001600160a01b0316148061307d5750836001600160a01b031661307284610ae2565b6001600160a01b0316145b806130ad57506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166130c882611550565b6001600160a01b0316146131305760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610298565b6001600160a01b0382166131925760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610298565b61319d8383836140a7565b6131a8600082612ce3565b6001600160a01b03831660009081526003602052604081208054600192906131d19084906159af565b90915550506001600160a01b03821660009081526003602052604081208054600192906131ff90849061571a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006132af7f000000000000000000000000c7a590291e07b9fe9e64b86c58fd8fc764308c4a8585857f00e263aaa3a2c06a89b53217a9e7aad7e15613490a72e0f95f303c4de2dc704561415f565b90505b9392505050565b8063ffffffff811681146132cc57600080fd5b919050565b600080806000198587098587029250828110838203039150508060001415613338576000841161332d5760405162461bcd60e51b8152602060048201526007602482015266302064656e6f6d60c81b6044820152606401610298565b5082900490506132b2565b8084116133875760405162461bcd60e51b815260206004820152600e60248201527f64656e6f6d203c3d2070726f64310000000000000000000000000000000000006044820152606401610298565b60008486880980840393811190920391905060006133a78619600161571a565b8616958690049560026003880281188089028203028089028203028089028203028089028203028089028203028089029091030260008290038290046001019490940294049390931791909102925050509392505050565b60408051608081018252885463ffffffff8082168352640100000000820481166020840152600160401b90910416918101919091526001880154606082015260009081908361348157606081015161345e578460009250925050613757565b600060018b0155606081015161347590869061571a565b60009250925050613757565b60006134c8620186a062ffffff1686620186a062ffffff1685602001518c6134a991906159c6565b63ffffffff166134b991906159e3565b6134c39190615a18565b614238565b90506000826000015163ffffffff16836040015163ffffffff161115613526578251604084015161352191620186a09161350291906159c6565b63ffffffff16620186a062ffffff1686600001518d6134a991906159c6565b61352b565b620186a05b606084015190915061353f8189848661424e565b606086018290529650156135e75760608401516135e29061356490620186a0906159e3565b61357184620186a06159af565b83876040015163ffffffff1661358791906159e3565b61359191906159e3565b61359e86620186a06159af565b8b8b896020015163ffffffff166135b5919061571a565b6135bf91906159e3565b6135c991906159e3565b6135d3919061571a565b6135dd9190615a18565b6132b9565b6135e9565b895b8d5463ffffffff91909116600160401b026bffffffff000000000000000019909116178d55506000915087905061362957613624898b6157d5565b613633565b613633898b615967565b6001600160801b0316905086156136d3576136ac6135dd61366363ffffffff8b166001600160801b038d166159e3565b8c6001600160801b0316613692866020015163ffffffff168a8e63ffffffff1661368d91906159af565b6142a2565b61369c91906159e3565b6136a6919061571a565b836142b2565b8b5463ffffffff919091166401000000000267ffffffff0000000019909116178b55613739565b600082606001511180156136ef57506001600160801b03891615155b1561373957896001600160801b0316896001600160801b0316836060015161371791906159e3565b6137219190615a18565b9250828260600181815161373591906159af565b9052505b506060015160018a0155885463ffffffff191663ffffffff87161789555b97509795505050505050565b600061376e82611550565b905061377c816000846140a7565b613787600083612ce3565b6001600160a01b03811660009081526003602052604081208054600192906137b09084906159af565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000818152600d6020526040812080546001600160601b0316908261382e83615a2c565b91906101000a8154816001600160601b0302191690836001600160601b031602179055506001600160601b03169050919050565b61386d8484846130b5565b613879848484846142e4565b61228a5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610298565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b15801561392257600080fd5b505afa158015613936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061395a91906156c5565b9050828110156139ac5760405162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e7420746f6b656e00000000000000000000000000006044820152606401610298565b801561228a5761228a84823085614068565b600080600080600085602001516001600160a01b031686600001516001600160a01b031610613a3b5760405162461bcd60e51b8152602060048201526024808201527f4c697175696469747948656c7065723a20696e76616c696420746f6b656e206f604482015263393232b960e11b6064820152608401610298565b613a52866000015187602001518860400151613260565b90506000816001600160a01b031663217ac2376040518163ffffffff1660e01b815260040160806040518083038186803b158015613a8f57600080fd5b505afa158015613aa3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac7919061564d565b50505090506000613adb886080015161443c565b90506000613aec8960a0015161443c565b9050613b048383838c60e001518d610100015161476f565b9750505050806001600160a01b0316630c1225b7876060015188608001518960a001518a60c001518a613bb28d600001518e602001518f6040015160408051608080820183526001600160a01b03958616808352948616602080840191825262ffffff95861684860190815233606095860190815286519283019890985291518816818601529051909416918401919091529251909316818301528251808203909201825260a00190915290565b6040518763ffffffff1660e01b8152600401613bd396959493929190615a53565b606060405180830381600087803b158015613bed57600080fd5b505af1158015613c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2591906157a7565b61012089015192965090945092508410801590613c4757508561014001518310155b613ca15760405162461bcd60e51b815260206004820152602560248201527f4c697175696469747948656c7065723a20707269636520736c69707061676520604482015264636865636b60d81b6064820152608401610298565b91939590929450565b600080808061018085013580421115613cef5760405162461bcd60e51b8152602060048201526007602482015266115e1c1a5c995960ca1b6044820152606401610298565b600080613df26040518061016001604052808a6000016020810190613d149190614fa5565b6001600160a01b031681526020018a6020016020810190613d359190614fa5565b6001600160a01b03168152602001613d5360608c0160408d01615ac2565b62ffffff168152306020820152604001613d7360808c0160608d01615add565b60020b8152602001613d8b60a08c0160808d01615add565b60020b81526020018a60a00160028060200260405190810160405280929190826002602002808284376000920191909152505050815260e08b013560208201526101008b013560408201526101208b013560608201526101408b01356080909101526139be565b600b8054959b5093995091975090945092506000613e0f8361594c565b909155509650613e30613e2a6101808a016101608b01614fa5565b8861480b565b6000613e6883613e4360208c018c614fa5565b613e5360408d0160208e01614fa5565b613e6360608e0160408f01615ac2565b614959565b905060405180610100016040528060006001600160601b0316815260200160006001600160a01b03168152602001826001600160501b031681526020018a6060016020810190613eb89190615add565b60020b8152602001613ed060a08c0160808d01615add565b600290810b82526001600160801b038a811660208085018290526000604080870182905260609687018a90528f8252600d8352908190208751888401516001600160a01b0316600160601b026001600160601b03909116178155878201516001820180548a8a015160808c015160a08d01518a16600160801b0262ffffff918216600160681b02909a166cffffffffffffffffffffffffff91909216600160501b026cffffffffffffffffffffffffff199093166001600160501b03958616179290921791909116179690961790955560c08801519581019590955560e09096015160039094019390935584519081529182018a9052928101889052918316918a917f2aa61af31176eaad0779e2bd456bd28a44d1a68b677072b5ada024becc1b6d30910160405180910390a3505050509193509193565b60006001600160e01b0319821663780e9d6360e01b1480610a4a5750610a4a82614a89565b600061403a8484846132d1565b90506000828061404c5761404c615a02565b84860911156132b2578061405f8161594c565b95945050505050565b6001600160a01b0382163014156140925761408d6001600160a01b0385168285614ad9565b61228a565b61228a6001600160a01b038516838386614b3c565b6001600160a01b038316614102576140fd81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b614125565b816001600160a01b0316836001600160a01b031614614125576141258382614b74565b6001600160a01b03821661413c57610c8f81614c11565b826001600160a01b0316826001600160a01b031614610c8f57610c8f8282614cc0565b6000836001600160a01b0316856001600160a01b031610614181578385614184565b84845b604080516001600160a01b03808516602083015283169181019190915262ffffff86166060820152919650945060009087906080016040516020818303038152906040528051906020012084604051602001614215939291906001600160f81b0319815260609390931b6bffffffffffffffffffffffff191660018401526015830191909152603582015260550190565b60408051601f198184030181529190528051602090910120979650505050505050565b600081831061424757816132b2565b5090919050565b6000808061425c868861571a565b9050620186a061426c87866159e3565b61427689886159e3565b614280919061571a565b61428a9190615a18565b915061429682826159af565b92505094509492505050565b60008183101561424757816132b2565b60006142be8284615afa565b156142ca5760016142cd565b60005b60ff166142da8385615a18565b6132b2919061571a565b60006001600160a01b0384163b1561443157604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614328903390899088908890600401615b0e565b602060405180830381600087803b15801561434257600080fd5b505af1925050508015614372575060408051601f3d908101601f1916820190925261436f91810190615761565b60015b614417573d8080156143a0576040519150601f19603f3d011682016040523d82523d6000602084013e6143a5565b606091505b50805161440f5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608401610298565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506130ad565b506001949350505050565b60008060008360020b12614453578260020b61445b565b8260020b6000035b9050620d89e88111156144945760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401610298565b6000600182166144a857600160801b6144ba565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156144ee576ffff97272373d413259a46990580e213a0260801c5b600482161561450d576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561452c576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561454b576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561456a576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615614589576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156145a8576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156145c8576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156145e8576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615614608576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615614628576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615614648576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615614668576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615614688576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156146a8576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156146c9576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156146e9576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615614708576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614725576b048a170391f7dc42444e8fa20260801c5b60008460020b131561474657806000198161474257614742615a02565b0490505b64010000000081061561475a57600161475d565b60005b60ff16602082901c0192505050919050565b6000846001600160a01b0316866001600160a01b03161161479c57614795858585614d04565b905061405f565b836001600160a01b0316866001600160a01b0316106147c057614795858584614d48565b60006147cd878686614d04565b905060006147dc878986614d48565b9050806001600160801b0316826001600160801b0316106147fd57806147ff565b815b98975050505050505050565b6001600160a01b0382166148615760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610298565b6000818152600260205260409020546001600160a01b0316156148c65760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610298565b6148d2600083836140a7565b6001600160a01b03821660009081526003602052604081208054600192906148fb90849061571a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0384166000908152600f60205260409020546001600160501b0316806130ad57600a80546001600160501b031690600061499983615b4a565b82546101009290920a6001600160501b038181021990931691831602179091556001600160a01b039687166000818152600f60209081526040808320805469ffffffffffffffffffff191695871695861790558051606081018252998b168a5262ffffff9788168a8301908152988b168a8201908152948352600c825280832099518a549951908c1676ffffffffffffffffffffffffffffffffffffffffffffff19909a1699909917600160a01b99909816989098029690961788559151600197880180546001600160a01b0319169190991617909755958652600e909252509220805460ff1916909117905590565b60006001600160e01b031982166380ac58cd60e01b1480614aba57506001600160e01b03198216635b5e139f60e01b145b80610a4a57506301ffc9a760e01b6001600160e01b0319831614610a4a565b6040516001600160a01b038316602482015260448101829052610c8f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614d67565b6040516001600160a01b038085166024830152831660448201526064810182905261228a9085906323b872dd60e01b90608401614b05565b60006001614b81846115c7565b614b8b91906159af565b600083815260076020526040902054909150808214614bde576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090614c23906001906159af565b60008381526009602052604081205460088054939450909284908110614c4b57614c4b615732565b906000526020600020015490508060088381548110614c6c57614c6c615732565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480614ca457614ca4615b67565b6001900381819060005260206000200160009055905550505050565b6000614ccb836115c7565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b600080614d28856001600160a01b0316856001600160a01b0316600160601b6132d1565b905061405f614d4382858888036001600160a01b03166132d1565b614e39565b60006132af614d4383600160601b8787036001600160a01b03166132d1565b6000614dbc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614e4f9092919063ffffffff16565b805190915015610c8f5780806020019051810190614dda9190615992565b610c8f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610298565b806001600160801b03811681146132cc57600080fd5b60606132af848460008585843b614ea85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610298565b600080866001600160a01b03168587604051614ec49190615b7d565b60006040518083038185875af1925050503d8060008114614f01576040519150601f19603f3d011682016040523d82523d6000602084013e614f06565b606091505b5091509150614f16828286614f21565b979650505050505050565b60608315614f305750816132b2565b825115614f405782518084602001fd5b8160405162461bcd60e51b8152600401610298919061501a565b6001600160e01b031981168114614f7057600080fd5b50565b600060208284031215614f8557600080fd5b81356132b281614f5a565b6001600160a01b0381168114614f7057600080fd5b600060208284031215614fb757600080fd5b81356132b281614f90565b60005b83811015614fdd578181015183820152602001614fc5565b8381111561228a5750506000910152565b60008151808452615006816020860160208601614fc2565b601f01601f19169290920160200192915050565b6020815260006132b26020830184614fee565b60006020828403121561503f57600080fd5b5035919050565b6000806040838503121561505957600080fd5b823561506481614f90565b946020939093013593505050565b803562ffffff811681146132cc57600080fd5b6000806000806080858703121561509b57600080fd5b84356150a681614f90565b935060208501356150b681614f90565b92506150c460408601615072565b915060608501356150d481614f90565b939692955090935050565b6000806000606084860312156150f457600080fd5b83356150ff81614f90565b9250602084013561510f81614f90565b929592945050506040919091013590565b60008060008060008060c0878903121561513957600080fd5b863561514481614f90565b95506020870135945060408701359350606087013560ff8116811461516857600080fd5b9598949750929560808101359460a0909101359350915050565b600060a0828403121561519457600080fd5b50919050565b6000610160820190506001600160601b0384511682526001600160a01b0360208501511660208301526001600160501b03604085015116604083015260608401516151ea606084018260020b9052565b5060808401516151ff608084018260020b9052565b5060a084015161521a60a08401826001600160801b03169052565b5060c0848101519083015260e0808501519083015282516001600160a01b03908116610100840152602084015162ffffff166101208401526040840151166101408301526132b2565b6000806000806060858703121561527957600080fd5b8435935060208501359250604085013567ffffffffffffffff8082111561529f57600080fd5b818701915087601f8301126152b357600080fd5b8135818111156152c257600080fd5b8860208285010111156152d457600080fd5b95989497505060200194505050565b8015158114614f7057600080fd5b6000806040838503121561530457600080fd5b823561530f81614f90565b9150602083013561531f816152e3565b809150509250929050565b6000806020838503121561533d57600080fd5b823567ffffffffffffffff8082111561535557600080fd5b818501915085601f83011261536957600080fd5b81358181111561537857600080fd5b8660208260051b850101111561538d57600080fd5b60209290920196919550909350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156153f457603f198886030184526153e2858351614fee565b945092850192908501906001016153c6565b5092979650505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561544057615440615401565b604052919050565b600067ffffffffffffffff82111561546257615462615401565b50601f01601f191660200190565b6000806000806080858703121561548657600080fd5b843561549181614f90565b935060208501356154a181614f90565b925060408501359150606085013567ffffffffffffffff8111156154c457600080fd5b8501601f810187136154d557600080fd5b80356154e86154e382615448565b615417565b8181528860208385010111156154fd57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b6000806040838503121561553257600080fd5b82359150602083013561531f81614f90565b60008060006060848603121561555957600080fd5b833561556481614f90565b925060208401359150604084013561557b81614f90565b809150509250925092565b6000610100828403121561519457600080fd5b600080604083850312156155ac57600080fd5b82356155b781614f90565b9150602083013561531f81614f90565b60006101a0828403121561519457600080fd5b60006080828403121561519457600080fd5b600181811c9082168061560057607f821691505b6020821081141561519457634e487b7160e01b600052602260045260246000fd5b60006020828403121561563357600080fd5b81516132b281614f90565b8060020b8114614f7057600080fd5b6000806000806080858703121561566357600080fd5b845161566e81614f90565b602086015190945061567f8161563e565b60408601519093506156908161563e565b60608601519092506150d4816152e3565b600080604083850312156156b457600080fd5b505080516020909101519092909150565b6000602082840312156156d757600080fd5b5051919050565b6000602082840312156156f057600080fd5b815163ffffffff811681146132b257600080fd5b634e487b7160e01b600052601160045260246000fd5b6000821982111561572d5761572d615704565b500190565b634e487b7160e01b600052603260045260246000fd5b8281526040602082015260006132af6040830184614fee565b60006020828403121561577357600080fd5b81516132b281614f5a565b60006020828403121561579057600080fd5b81356001600160801b03811681146132b257600080fd5b6000806000606084860312156157bc57600080fd5b8351925060208401519150604084015190509250925092565b60006001600160801b03838116908316818110156157f5576157f5615704565b039392505050565b60006080828403121561580f57600080fd5b6040516080810181811067ffffffffffffffff8211171561583257615832615401565b604052823561584081614f90565b8152602083013561585081614f90565b602082015261586160408401615072565b6040820152606083013561587481614f90565b60608201529392505050565b6000808335601e1984360301811261589757600080fd5b83018035915067ffffffffffffffff8211156158b257600080fd5b6020019150368190038213156158c757600080fd5b9250929050565b8183823760009101908152919050565b6000602082840312156158f057600080fd5b815167ffffffffffffffff81111561590757600080fd5b8201601f8101841361591857600080fd5b80516159266154e382615448565b81815285602083850101111561593b57600080fd5b61405f826020830160208601614fc2565b600060001982141561596057615960615704565b5060010190565b60006001600160801b0380831681851680830382111561598957615989615704565b01949350505050565b6000602082840312156159a457600080fd5b81516132b2816152e3565b6000828210156159c1576159c1615704565b500390565b600063ffffffff838116908316818110156157f5576157f5615704565b60008160001904831182151516156159fd576159fd615704565b500290565b634e487b7160e01b600052601260045260246000fd5b600082615a2757615a27615a02565b500490565b60006001600160601b0380831681811415615a4957615a49615704565b6001019392505050565b6001600160a01b038716815260006020600288810b8285015287810b6040850152606084018760005b83811015615a9a578151840b83529184019190840190600101615a7c565b50505050506001600160801b03841660a083015260e060c08301526147ff60e0830184614fee565b600060208284031215615ad457600080fd5b6132b282615072565b600060208284031215615aef57600080fd5b81356132b28161563e565b600082615b0957615b09615a02565b500690565b60006001600160a01b03808716835280861660208401525083604083015260806060830152615b406080830184614fee565b9695505050505050565b60006001600160501b0380831681811415615a4957615a49615704565b634e487b7160e01b600052603160045260246000fd5b60008251615b8f818460208701614fc2565b919091019291505056fea164736f6c6343000809000a