@tokamak-network/thanos-contracts
Version:
1 lines • 176 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"},{"name":"_baseURIAttestor","type":"address","internalType":"address"},{"name":"_attestationStation","type":"address","internalType":"contract AttestationStation"},{"name":"_optimistAllowlist","type":"address","internalType":"contract OptimistAllowlist"}],"stateMutability":"nonpayable"},{"type":"function","name":"ATTESTATION_STATION","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AttestationStation"}],"stateMutability":"view"},{"type":"function","name":"BASE_URI_ATTESTATION_KEY","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BASE_URI_ATTESTOR","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OPTIMIST_ALLOWLIST","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimistAllowlist"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseURI","inputs":[],"outputs":[{"name":"uri_","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOnAllowList","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[{"name":"allowed_","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenIdOfAddress","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"tokenURI","inputs":[{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"uri_","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405162002c6538038062002c658339810160408190526200003491620003dc565b6001600160a01b0380841660805282811660a052811660c05262000059858562000064565b5050505050620005e2565b600054610100900460ff1615808015620000855750600054600160ff909116105b80620000b55750620000a230620001a460201b62000e691760201c565b158015620000b5575060005460ff166001145b6200011e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000142576000805461ff0019166101001790555b6200014e8383620001b3565b620001586200021f565b80156200019f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b6001600160a01b03163b151590565b600054610100900460ff166200020f5760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000115565b6200021b82826200027d565b5050565b600054610100900460ff166200027b5760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000115565b565b600054610100900460ff16620002d95760405162461bcd60e51b815260206004820152602b602482015260008051602062002c4583398151915260448201526a6e697469616c697a696e6760a81b606482015260840162000115565b6065620002e7838262000516565b5060666200019f828262000516565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200031e57600080fd5b81516001600160401b03808211156200033b576200033b620002f6565b604051601f8301601f19908116603f01168101908282118183101715620003665762000366620002f6565b816040528381526020925086838588010111156200038357600080fd5b600091505b83821015620003a7578582018301518183018401529082019062000388565b83821115620003b95760008385830101525b9695505050505050565b6001600160a01b0381168114620003d957600080fd5b50565b600080600080600060a08688031215620003f557600080fd5b85516001600160401b03808211156200040d57600080fd5b6200041b89838a016200030c565b965060208801519150808211156200043257600080fd5b5062000441888289016200030c565b94505060408601516200045481620003c3565b60608701519093506200046781620003c3565b60808701519092506200047a81620003c3565b809150509295509295909350565b600181811c908216806200049d57607f821691505b602082108103620004be57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019f57600081815260208120601f850160051c81016020861015620004ed5750805b601f850160051c820191505b818110156200050e57828155600101620004f9565b505050505050565b81516001600160401b03811115620005325762000532620002f6565b6200054a8162000543845462000488565b84620004c4565b602080601f831160018114620005825760008415620005695750858301515b600019600386901b1c1916600185901b1785556200050e565b600085815260208120601f198616915b82811015620005b35788860151825594840194600190910190840162000592565b5085821015620005d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05161261e62000627600039600081816103c70152610d090152600081816103ee0152610b4001526000818161022c0152610ae9015261261e6000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80636a627842116100e3578063a22cb4651161008c578063ce5dd1b511610066578063ce5dd1b5146103c2578063db083d71146103e9578063e985e9c51461041057600080fd5b8063a22cb4651461038e578063b88d4fde1461039c578063c87b56dd146103af57600080fd5b80637c08652f116100bd5780637c08652f1461034c5780638f328a1f1461037357806395d89b411461038657600080fd5b80636a6278421461031e5780636c0360eb1461033157806370a082311461033957600080fd5b806323b872dd116101455780634cd88b761161011f5780634cd88b76146102bc57806354fd4d50146102cf5780636352211e1461030b57600080fd5b806323b872dd1461028357806342842e0e1461029657806342966c68146102a957600080fd5b8063095ea7b311610176578063095ea7b31461021257806319f463f21461022757806321d3d5cf1461024e57600080fd5b806301ffc9a71461019d57806306fdde03146101c5578063081812fc146101da575b600080fd5b6101b06101ab366004611ddc565b610459565b60405190151581526020015b60405180910390f35b6101cd61053e565b6040516101bc9190611e6f565b6101ed6101e8366004611e82565b6105d0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bc565b610225610220366004611ec4565b610604565b005b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102757f6f7074696d6973742e626173652d75726900000000000000000000000000000081565b6040519081526020016101bc565b610225610291366004611eee565b61066b565b6102256102a4366004611eee565b610712565b6102256102b7366004611e82565b61072d565b6102256102ca36600461204c565b6107ce565b6101cd6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610319366004611e82565b61096b565b61022561032c3660046120b0565b6109f7565b6101cd610aac565b6102756103473660046120b0565b610bf3565b61027561035a3660046120b0565b73ffffffffffffffffffffffffffffffffffffffff1690565b6101b06103813660046120b0565b610cc1565b6101cd610d76565b6102256102203660046120d9565b6102256103aa366004612110565b610d85565b6101cd6103bd366004611e82565b610e2d565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101b061041e36600461218c565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806104ec57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061053857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606065805461054d906121bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610579906121bf565b80156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105db82610e85565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e00000000000060448201526064015b60405180910390fd5b610676335b82610f10565b610702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b61070d838383610fd0565b505050565b61070d83838360405180602001604052806000815250610d85565b61073633610670565b6107c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b6107cb81611242565b50565b600054610100900460ff16158080156107ee5750600054600160ff909116105b806108085750303b158015610808575060005460ff166001145b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610662565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108fc838361131c565b6109046113bd565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b610a0081610cc1565b610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f7074696d6973743a2061646472657373206973206e6f74206f6e20616c6c6f60448201527f774c6973740000000000000000000000000000000000000000000000000000006064820152608401610662565b6107cb8173ffffffffffffffffffffffffffffffffffffffff8116611456565b6040517f29b42cb500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f6f7074696d6973742e626173652d75726900000000000000000000000000000060448301526060917f0000000000000000000000000000000000000000000000000000000000000000909116906329b42cb590606401600060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610bcf9190810190612212565b604051602001610bdf9190612289565b604051602081830303815290604052905090565b600073ffffffffffffffffffffffffffffffffffffffff8216610c98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610662565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6040517f4813d8a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690634813d8a690602401602060405180830381865afa158015610d52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053891906122a5565b60606066805461054d906121bf565b610d8f3383610f10565b610e1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b610e2784848484611470565b50505050565b6060610e37610aac565b610e42836014611513565b604051602001610e539291906122c2565b6040516020818303038152906040529050919050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff166107cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b600080610f1c8361096b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f8a575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610fc857508373ffffffffffffffffffffffffffffffffffffffff16610fb0846105d0565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610ff08261096b565b73ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610662565b73ffffffffffffffffffffffffffffffffffffffff8216611135576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610662565b61114083838361175d565b61114b6000826117fa565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606860205260408120805460019290611181908490612373565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526068602052604081208054600192906111bc90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061124d8261096b565b905061125b8160008461175d565b6112666000836117fa565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260686020526040812080546001929061129c908490612373565b909155505060008281526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45b5050565b600054610100900460ff166113b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b611318828261189a565b600054610100900460ff16611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b565b61131882826040518060200160405280600081525061194a565b61147b848484610fd0565b611487848484846119ed565b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b606060006115228360026123a2565b61152d90600261238a565b67ffffffffffffffff81111561154557611545611f2a565b6040519080825280601f01601f19166020018201604052801561156f576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115a6576115a66123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611609576116096123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006116458460026123a2565b61165090600161238a565b90505b60018111156116ed577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611691576116916123df565b1a60f81b8282815181106116a7576116a76123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936116e68161240e565b9050611653565b508315611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610662565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff83161580611794575073ffffffffffffffffffffffffffffffffffffffff8216155b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e0000000000006044820152606401610662565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906118548261096b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600054610100900460ff16611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b606561193d8382612491565b50606661070d8282612491565b6119548383611be0565b61196160008484846119ed565b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611bd5576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611a649033908990889088906004016125ab565b6020604051808303816000875af1925050508015611abd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611aba918101906125f4565b60015b611b8a573d808015611aeb576040519150601f19603f3d011682016040523d82523d6000602084013e611af0565b606091505b508051600003611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610fc8565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610662565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610662565b611cf56000838361175d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152606860205260408120805460019290611d2b90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146107cb57600080fd5b600060208284031215611dee57600080fd5b813561175681611dae565b60005b83811015611e14578181015183820152602001611dfc565b83811115610e275750506000910152565b60008151808452611e3d816020860160208601611df9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006117566020830184611e25565b600060208284031215611e9457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611ebf57600080fd5b919050565b60008060408385031215611ed757600080fd5b611ee083611e9b565b946020939093013593505050565b600080600060608486031215611f0357600080fd5b611f0c84611e9b565b9250611f1a60208501611e9b565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611fa057611fa0611f2a565b604052919050565b600067ffffffffffffffff821115611fc257611fc2611f2a565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000612001611ffc84611fa8565b611f59565b905082815283838301111561201557600080fd5b828260208301376000602084830101529392505050565b600082601f83011261203d57600080fd5b61175683833560208501611fee565b6000806040838503121561205f57600080fd5b823567ffffffffffffffff8082111561207757600080fd5b6120838683870161202c565b9350602085013591508082111561209957600080fd5b506120a68582860161202c565b9150509250929050565b6000602082840312156120c257600080fd5b61175682611e9b565b80151581146107cb57600080fd5b600080604083850312156120ec57600080fd5b6120f583611e9b565b91506020830135612105816120cb565b809150509250929050565b6000806000806080858703121561212657600080fd5b61212f85611e9b565b935061213d60208601611e9b565b925060408501359150606085013567ffffffffffffffff81111561216057600080fd5b8501601f8101871361217157600080fd5b61218087823560208401611fee565b91505092959194509250565b6000806040838503121561219f57600080fd5b6121a883611e9b565b91506121b660208401611e9b565b90509250929050565b600181811c908216806121d357607f821691505b60208210810361220c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561222457600080fd5b815167ffffffffffffffff81111561223b57600080fd5b8201601f8101841361224c57600080fd5b805161225a611ffc82611fa8565b81815285602083850101111561226f57600080fd5b612280826020830160208601611df9565b95945050505050565b6000825161229b818460208701611df9565b9190910192915050565b6000602082840312156122b757600080fd5b8151611756816120cb565b600083516122d4818460208801611df9565b7f2f00000000000000000000000000000000000000000000000000000000000000908301908152835161230e816001840160208801611df9565b7f2e6a736f6e00000000000000000000000000000000000000000000000000000060019290910191820152600601949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561238557612385612344565b500390565b6000821982111561239d5761239d612344565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156123da576123da612344565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008161241d5761241d612344565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b601f82111561070d57600081815260208120601f850160051c8101602086101561246a5750805b601f850160051c820191505b8181101561248957828155600101612476565b505050505050565b815167ffffffffffffffff8111156124ab576124ab611f2a565b6124bf816124b984546121bf565b84612443565b602080601f83116001811461251257600084156124dc5750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555612489565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561255f57888601518255948401946001909101908401612540565b508582101561259b57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526125ea6080830184611e25565b9695505050505050565b60006020828403121561260657600080fd5b815161175681611dae56fea164736f6c634300080f000a496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069","sourceMap":"611:4743:247:-:0;;;1604:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1820:36:247;;;;;1866:41;;;;;1917:39;;;;1966:26;1977:5;1984:7;1966:10;:26::i;:::-;1604:395;;;;;611:4743;;2128:162;3111:19:32;3134:13;;;;;;3133:14;;3179:34;;;;-1:-1:-1;3197:12:32;;3212:1;3197:12;;;;:16;3179:34;3178:108;;;;3220:44;3258:4;3220:29;;;;;:44;;:::i;:::-;3219:45;:66;;;;-1:-1:-1;3268:12:32;;;;;:17;3219:66;3157:201;;;;-1:-1:-1;;;3157:201:32;;2396:2:416;3157:201:32;;;2378:21:416;2435:2;2415:18;;;2408:30;2474:34;2454:18;;;2447:62;-1:-1:-1;;;2525:18:416;;;2518:44;2579:19;;3157:201:32;;;;;;;;;3368:12;:16;;-1:-1:-1;;3368:16:32;3383:1;3368:16;;;3394:65;;;;3428:13;:20;;-1:-1:-1;;3428:20:32;;;;;3394:65;2221:29:247::1;2235:5:::0;2242:7;2221:13:::1;:29::i;:::-;2260:23;:21;:23::i;:::-;3483:14:32::0;3479:99;;;3529:5;3513:21;;-1:-1:-1;;3513:21:32;;;3553:14;;-1:-1:-1;2761:36:416;;3553:14:32;;2749:2:416;2734:18;3553:14:32;;;;;;;3479:99;3101:483;2128:162:247;;:::o;1186:320:38:-;-1:-1:-1;;;;;1476:19:38;;:23;;;1186:320::o;1605:149:33:-;4910:13:32;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:32;;3010:2:416;4902:69:32;;;2992:21:416;3049:2;3029:18;;;3022:30;-1:-1:-1;;;;;;;;;;;3068:18:416;;;3061:62;-1:-1:-1;;;3139:18:416;;;3132:41;3190:19;;4902:69:32;2808:407:416;4902:69:32;1708:39:33::1;1732:5:::0;1739:7;1708:23:::1;:39::i;:::-;1605:149:::0;;:::o;483:66:36:-;4910:13:32;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:32;;3010:2:416;4902:69:32;;;2992:21:416;3049:2;3029:18;;;3022:30;-1:-1:-1;;;;;;;;;;;3068:18:416;;;3061:62;-1:-1:-1;;;3139:18:416;;;3132:41;3190:19;;4902:69:32;2808:407:416;4902:69:32;483:66:36:o;1760:160:33:-;4910:13:32;;;;;;;4902:69;;;;-1:-1:-1;;;4902:69:32;;3010:2:416;4902:69:32;;;2992:21:416;3049:2;3029:18;;;3022:30;-1:-1:-1;;;;;;;;;;;3068:18:416;;;3061:62;-1:-1:-1;;;3139:18:416;;;3132:41;3190:19;;4902:69:32;2808:407:416;4902:69:32;1873:5:33::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:33::1;:17;1906:7:::0;1896;:17:::1;:::i;14:127:416:-:0;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:885;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:416;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:416;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;930:2;927:1;924:9;921:80;;;989:1;984:2;979;971:6;967:15;963:24;956:35;921:80;1019:6;146:885;-1:-1:-1;;;;;;146:885:416:o;1036:131::-;-1:-1:-1;;;;;1111:31:416;;1101:42;;1091:70;;1157:1;1154;1147:12;1091:70;1036:131;:::o;1172:1017::-;1355:6;1363;1371;1379;1387;1440:3;1428:9;1419:7;1415:23;1411:33;1408:53;;;1457:1;1454;1447:12;1408:53;1484:16;;-1:-1:-1;;;;;1549:14:416;;;1546:34;;;1576:1;1573;1566:12;1546:34;1599:61;1652:7;1643:6;1632:9;1628:22;1599:61;:::i;:::-;1589:71;;1706:2;1695:9;1691:18;1685:25;1669:41;;1735:2;1725:8;1722:16;1719:36;;;1751:1;1748;1741:12;1719:36;;1774:63;1829:7;1818:8;1807:9;1803:24;1774:63;:::i;:::-;1764:73;;;1880:2;1869:9;1865:18;1859:25;1893:31;1918:5;1893:31;:::i;:::-;1993:2;1978:18;;1972:25;1943:5;;-1:-1:-1;2006:33:416;1972:25;2006:33;:::i;:::-;2110:3;2095:19;;2089:26;2058:7;;-1:-1:-1;2124:33:416;2089:26;2124:33;:::i;:::-;2176:7;2166:17;;;1172:1017;;;;;;;;:::o;3220:380::-;3299:1;3295:12;;;;3342;;;3363:61;;3417:4;3409:6;3405:17;3395:27;;3363:61;3470:2;3462:6;3459:14;3439:18;3436:38;3433:161;;3516:10;3511:3;3507:20;3504:1;3497:31;3551:4;3548:1;3541:15;3579:4;3576:1;3569:15;3433:161;;3220:380;;;:::o;3731:545::-;3833:2;3828:3;3825:11;3822:448;;;3869:1;3894:5;3890:2;3883:17;3939:4;3935:2;3925:19;4009:2;3997:10;3993:19;3990:1;3986:27;3980:4;3976:38;4045:4;4033:10;4030:20;4027:47;;;-1:-1:-1;4068:4:416;4027:47;4123:2;4118:3;4114:12;4111:1;4107:20;4101:4;4097:31;4087:41;;4178:82;4196:2;4189:5;4186:13;4178:82;;;4241:17;;;4222:1;4211:13;4178:82;;;4182:3;;;3731:545;;;:::o;4452:1352::-;4572:10;;-1:-1:-1;;;;;4594:30:416;;4591:56;;;4627:18;;:::i;:::-;4656:97;4746:6;4706:38;4738:4;4732:11;4706:38;:::i;:::-;4700:4;4656:97;:::i;:::-;4808:4;;4872:2;4861:14;;4889:1;4884:663;;;;5591:1;5608:6;5605:89;;;-1:-1:-1;5660:19:416;;;5654:26;5605:89;-1:-1:-1;;4409:1:416;4405:11;;;4401:24;4397:29;4387:40;4433:1;4429:11;;;4384:57;5707:81;;4854:944;;4884:663;3678:1;3671:14;;;3715:4;3702:18;;-1:-1:-1;;4920:20:416;;;5038:236;5052:7;5049:1;5046:14;5038:236;;;5141:19;;;5135:26;5120:42;;5233:27;;;;5201:1;5189:14;;;;5068:19;;5038:236;;;5042:3;5302:6;5293:7;5290:19;5287:201;;;5363:19;;;5357:26;-1:-1:-1;;5446:1:416;5442:14;;;5458:3;5438:24;5434:37;5430:42;5415:58;5400:74;;5287:201;-1:-1:-1;;;;;5534:1:416;5518:14;;;5514:22;5501:36;;-1:-1:-1;4452:1352:416:o;:::-;611:4743:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101985760003560e01c80636a627842116100e3578063a22cb4651161008c578063ce5dd1b511610066578063ce5dd1b5146103c2578063db083d71146103e9578063e985e9c51461041057600080fd5b8063a22cb4651461038e578063b88d4fde1461039c578063c87b56dd146103af57600080fd5b80637c08652f116100bd5780637c08652f1461034c5780638f328a1f1461037357806395d89b411461038657600080fd5b80636a6278421461031e5780636c0360eb1461033157806370a082311461033957600080fd5b806323b872dd116101455780634cd88b761161011f5780634cd88b76146102bc57806354fd4d50146102cf5780636352211e1461030b57600080fd5b806323b872dd1461028357806342842e0e1461029657806342966c68146102a957600080fd5b8063095ea7b311610176578063095ea7b31461021257806319f463f21461022757806321d3d5cf1461024e57600080fd5b806301ffc9a71461019d57806306fdde03146101c5578063081812fc146101da575b600080fd5b6101b06101ab366004611ddc565b610459565b60405190151581526020015b60405180910390f35b6101cd61053e565b6040516101bc9190611e6f565b6101ed6101e8366004611e82565b6105d0565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bc565b610225610220366004611ec4565b610604565b005b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6102757f6f7074696d6973742e626173652d75726900000000000000000000000000000081565b6040519081526020016101bc565b610225610291366004611eee565b61066b565b6102256102a4366004611eee565b610712565b6102256102b7366004611e82565b61072d565b6102256102ca36600461204c565b6107ce565b6101cd6040518060400160405280600581526020017f322e312e3000000000000000000000000000000000000000000000000000000081525081565b6101ed610319366004611e82565b61096b565b61022561032c3660046120b0565b6109f7565b6101cd610aac565b6102756103473660046120b0565b610bf3565b61027561035a3660046120b0565b73ffffffffffffffffffffffffffffffffffffffff1690565b6101b06103813660046120b0565b610cc1565b6101cd610d76565b6102256102203660046120d9565b6102256103aa366004612110565b610d85565b6101cd6103bd366004611e82565b610e2d565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101b061041e36600461218c565b73ffffffffffffffffffffffffffffffffffffffff9182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806104ec57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061053857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60606065805461054d906121bf565b80601f0160208091040260200160405190810160405280929190818152602001828054610579906121bf565b80156105c65780601f1061059b576101008083540402835291602001916105c6565b820191906000526020600020905b8154815290600101906020018083116105a957829003601f168201915b5050505050905090565b60006105db82610e85565b5060009081526069602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e00000000000060448201526064015b60405180910390fd5b610676335b82610f10565b610702576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b61070d838383610fd0565b505050565b61070d83838360405180602001604052806000815250610d85565b61073633610670565b6107c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b6107cb81611242565b50565b600054610100900460ff16158080156107ee5750600054600160ff909116105b806108085750303b158015610808575060005460ff166001145b610894576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610662565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156108f257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6108fc838361131c565b6109046113bd565b801561070d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60008181526067602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b610a0081610cc1565b610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f7074696d6973743a2061646472657373206973206e6f74206f6e20616c6c6f60448201527f774c6973740000000000000000000000000000000000000000000000000000006064820152608401610662565b6107cb8173ffffffffffffffffffffffffffffffffffffffff8116611456565b6040517f29b42cb500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000811660048301523060248301527f6f7074696d6973742e626173652d75726900000000000000000000000000000060448301526060917f0000000000000000000000000000000000000000000000000000000000000000909116906329b42cb590606401600060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610bcf9190810190612212565b604051602001610bdf9190612289565b604051602081830303815290604052905090565b600073ffffffffffffffffffffffffffffffffffffffff8216610c98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610662565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526068602052604090205490565b6040517f4813d8a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690634813d8a690602401602060405180830381865afa158015610d52573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053891906122a5565b60606066805461054d906121bf565b610d8f3383610f10565b610e1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610662565b610e2784848484611470565b50505050565b6060610e37610aac565b610e42836014611513565b604051602001610e539291906122c2565b6040516020818303038152906040529050919050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff166107cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610662565b600080610f1c8361096b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610f8a575073ffffffffffffffffffffffffffffffffffffffff8082166000908152606a602090815260408083209388168352929052205460ff165b80610fc857508373ffffffffffffffffffffffffffffffffffffffff16610fb0846105d0565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16610ff08261096b565b73ffffffffffffffffffffffffffffffffffffffff1614611093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610662565b73ffffffffffffffffffffffffffffffffffffffff8216611135576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610662565b61114083838361175d565b61114b6000826117fa565b73ffffffffffffffffffffffffffffffffffffffff83166000908152606860205260408120805460019290611181908490612373565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526068602052604081208054600192906111bc90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061124d8261096b565b905061125b8160008461175d565b6112666000836117fa565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260686020526040812080546001929061129c908490612373565b909155505060008281526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45b5050565b600054610100900460ff166113b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b611318828261189a565b600054610100900460ff16611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b565b61131882826040518060200160405280600081525061194a565b61147b848484610fd0565b611487848484846119ed565b610e27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b606060006115228360026123a2565b61152d90600261238a565b67ffffffffffffffff81111561154557611545611f2a565b6040519080825280601f01601f19166020018201604052801561156f576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106115a6576115a66123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611609576116096123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006116458460026123a2565b61165090600161238a565b90505b60018111156116ed577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611691576116916123df565b1a60f81b8282815181106116a7576116a76123df565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936116e68161240e565b9050611653565b508315611756576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610662565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff83161580611794575073ffffffffffffffffffffffffffffffffffffffff8216155b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4f7074696d6973743a20736f756c20626f756e6420746f6b656e0000000000006044820152606401610662565b600081815260696020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906118548261096b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600054610100900460ff16611931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610662565b606561193d8382612491565b50606661070d8282612491565b6119548383611be0565b61196160008484846119ed565b61070d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611bd5576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611a649033908990889088906004016125ab565b6020604051808303816000875af1925050508015611abd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611aba918101906125f4565b60015b611b8a573d808015611aeb576040519150601f19603f3d011682016040523d82523d6000602084013e611af0565b606091505b508051600003611b82576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610662565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610fc8565b506001949350505050565b73ffffffffffffffffffffffffffffffffffffffff8216611c5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610662565b60008181526067602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611ce9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610662565b611cf56000838361175d565b73ffffffffffffffffffffffffffffffffffffffff82166000908152606860205260408120805460019290611d2b90849061238a565b909155505060008181526067602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146107cb57600080fd5b600060208284031215611dee57600080fd5b813561175681611dae565b60005b83811015611e14578181015183820152602001611dfc565b83811115610e275750506000910152565b60008151808452611e3d816020860160208601611df9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006117566020830184611e25565b600060208284031215611e9457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611ebf57600080fd5b919050565b60008060408385031215611ed757600080fd5b611ee083611e9b565b946020939093013593505050565b600080600060608486031215611f0357600080fd5b611f0c84611e9b565b9250611f1a60208501611e9b565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611fa057611