[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AuthorizationExpired", "type": "error" }, { "inputs": [], "name": "AuthorizationNotYetValid", "type": "error" }, { "inputs": [], "name": "AuthorizationUsedOrInsufficient", "type": "error" }, { "inputs": [], "name": "CancelAuthorizationFailed", "type": "error" }, { "inputs": [], "name": "InsufficientDeposit", "type": "error" }, { "inputs": [], "name": "InsufficientFunds", "type": "error" }, { "inputs": [], "name": "Matured", "type": "error" }, { "inputs": [], "name": "PrematureRedeem", "type": "error" }, { "inputs": [], "name": "UnauthorizedCaller", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "authorizer", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "AuthorizationUsed", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "authorizer", "type": "address" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" } ], "name": "authorizationState", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "authorizer", "type": "address" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "cancelAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "depositor", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "structHash", "type": "bytes32" } ], "name": "hashTypedDataV4", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "uint8", "name": "__decimals", "type": "uint8" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "receiveWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "transferFromWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "validAfter", "type": "uint256" }, { "internalType": "uint256", "name": "validBefore", "type": "uint256" }, { "internalType": "bytes32", "name": "nonce", "type": "bytes32" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "transferWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608080604052346100c1576000549060ff8260081c1661006f575060ff80821603610034575b604051612a5890816100c78239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610025565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe608080604052600436101561001357600080fd5b60e0600035811c91826306fdde0314611d2b57508163095ea7b314611ce75781631624f6c6146112a457816318160ddd1461126857816323b872dd14611147578163313ce567146111055781633644e515146110cc578163395093511461104f57816340c10f1914610f3e5781634980f28814610ef757816370a0823114610e925781637ecebe0014610e2d57816384b0196e14610cb457816388b7ab6314610be557816395d89b4114610ac35781639dc29fac146108fb5781639fd5a6cf14610880578163a457c2d71461077c578163a9059cbb1461072d578163b7b7289914610561578163c7c4ff461461050f578163cf0929951461030257508063dd62ed3e14610285578063e69ee1d2146101b15763e94a01021461013457600080fd5b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac5773ffffffffffffffffffffffffffffffffffffffff610180611e4a565b16600052609a6020526040600020602435600052602052602060ff604060002054166040519015158152f35b600080fd5b346101ac5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576101e8611e4a565b6101f0611e6d565b60443573ffffffffffffffffffffffffffffffffffffffff9283821682036101ac576064359260a43567ffffffffffffffff81116101ac57610236903690600401611e90565b9095339083160361025b576102599561025492866084359186612963565b6121ad565b005b60046040517f5c427cd9000000000000000000000000000000000000000000000000000000008152fd5b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576102bc611e4a565b6102c4611e6d565b9073ffffffffffffffffffffffffffffffffffffffff8091166000526034602052604060002091166000526020526020604060002054604051908152f35b346101ac5761031036611ebe565b91939790889795974211156104e557834210156104bb5773ffffffffffffffffffffffffffffffffffffffff93848716998a600052609a60205260406000208760005260205260ff604060002054166104915761041b956104149461040c938d936040519360208501957f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267875260408601528d1660608501528d608085015260a084015260c0830152888183015281526103c981611f9e565b5190206103d461262f565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b92369161256d565b9084612716565b1561025b578461025995600052609a602052604060002082600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a5600080a36121ad565b60046040517faba01284000000000000000000000000000000000000000000000000000000008152fd5b60046040517f0f05f5bf000000000000000000000000000000000000000000000000000000008152fd5b60046040517fdf8e4372000000000000000000000000000000000000000000000000000000008152fd5b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57602073ffffffffffffffffffffffffffffffffffffffff60995416604051908152f35b346101ac5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57610598611e4a565b6024359067ffffffffffffffff6044358181116101ac576105bd903690600401611e90565b73ffffffffffffffffffffffffffffffffffffffff849294169384600052609a60205260406000208660005260205260ff60406000205416610703576040519060208201947f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a15974298652866040840152876060840152606083526080830190838210908211176106d4576106659561065f9361040c926040525190206103d461262f565b91612716565b1561025b5780600052609a602052604060002082600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d81600080a3005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60046040517fa0861e64000000000000000000000000000000000000000000000000000000008152fd5b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57610771610767611e4a565b60243590336121ad565b602060405160018152f35b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576107b3611e4a565b60243590336000526034602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054918083106107fc57610771920390336123be565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152fd5b346101ac5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576108b7611e4a565b6108bf611e6d565b604435906084359267ffffffffffffffff84116101ac576108f66108ea610259953690600401611e90565b90606435868686612963565b6123be565b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57610932611e4a565b6024359073ffffffffffffffffffffffffffffffffffffffff908160995416330361025b57168015610a3f57806000526033602052604060002054918083106109bb576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92600095858752603384520360408620558060355403603555604051908152a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f63650000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f73000000000000000000000000000000000000000000000000000000000000006064820152fd5b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576040516000603754610b0381611f4b565b80845290600190818116908115610ba05750600114610b45575b610b4184610b2d81860382611fbb565b604051918291602083526020830190611dec565b0390f35b6037600090815292507f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae5b828410610b88575050508101602001610b2d82610b1d565b80546020858701810191909152909301928101610b70565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208087019190915292151560051b85019092019250610b2d9150839050610b1d565b346101ac57610bf336611ebe565b9193979073ffffffffffffffffffffffffffffffffffffffff979597938488169485330361025b578a4211156104e557814210156104bb578716998a600052609a60205260406000208760005260205260ff604060002054166104915761041b956104149461040c938d936040519360208501957fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de88752604086015260608501528d608085015260a084015260c0830152888183015281526103c981611f9e565b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576065541580610e23575b15610dc557610cfa611ffc565b610d026120d8565b604051906020908183019383851067ffffffffffffffff8611176106d45794939290610d7883918560405260008452610d6a6040519889987f0f000000000000000000000000000000000000000000000000000000000000008a5280868b0152890190611dec565b908782036040890152611dec565b91466060870152306080870152600060a087015285830360c0870152519182815201929160005b828110610dae57505050500390f35b835185528695509381019392810192600101610d9f565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152fd5b5060665415610ced565b346101ac5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac5773ffffffffffffffffffffffffffffffffffffffff610e79611e4a565b16600052609b6020526020604060002054604051908152f35b346101ac5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac5773ffffffffffffffffffffffffffffffffffffffff610ede611e4a565b1660005260336020526020604060002054604051908152f35b346101ac5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576020610f366004356103d461262f565b604051908152f35b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57610f75611e4a565b6024359073ffffffffffffffffffffffffffffffffffffffff908160995416330361025b5716908115610ff1577fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082610fd4600094603554612171565b6035558484526033825260408420818154019055604051908152a3005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57610771611089611e4a565b336000526034602052604060002073ffffffffffffffffffffffffffffffffffffffff82166000526020526110c5602435604060002054612171565b90336123be565b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576020610f3661262f565b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57602060ff60995460a01c16604051908152f35b346101ac5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac5761117e611e4a565b611186611e6d565b6044359073ffffffffffffffffffffffffffffffffffffffff83166000526034602052604060002033600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84036111ee575b61077193506121ad565b82841061120a5761120583610771950333836123be565b6111e4565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152fd5b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576020603554604051908152f35b346101ac5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac5760043567ffffffffffffffff81116101ac576112f3903690600401611e90565b60243567ffffffffffffffff81116101ac57611313903690600401611e90565b92909160ff60443516604435036101ac5760005460ff8160081c161593848095611cda575b8015611cc3575b15611c3f57818560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0061138b951617600055611c10575b5061138336848661256d565b95369161256d565b936113a660ff60005460081c166113a1816125a4565b6125a4565b80519067ffffffffffffffff82116106d45781906113c5603654611f4b565b601f8111611b66575b50602090601f8311600114611a8257600092611a77575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176036555b835167ffffffffffffffff81116106d457611434603754611f4b565b601f81116119d4575b506020601f82116001146118ef57819061149495966000926118e4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176037555b369161256d565b90604051906040820182811067ffffffffffffffff8211176106d457604052600182527f310000000000000000000000000000000000000000000000000000000000000060208301526114f260ff60005460081c166113a1816125a4565b825167ffffffffffffffff81116106d45761150e606754611f4b565b601f811161187f575b506020601f82116001146117bf57819293946000926117b4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176067555b815167ffffffffffffffff81116106d457611580606854611f4b565b601f811161174f575b50602092601f82116001146116915792819293600092611686575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176068555b6000606555600060665560995433907fffffffffffffffffffffff00000000000000000000000000000000000000000074ff000000000000000000000000000000000000000060443560a01b169116171760995561163157005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b0151905083806115a4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169360686000527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977539160005b8681106117375750836001959610611700575b505050811b016068556115d7565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558380806116f2565b919260206001819286850151815501940192016116df565b60686000527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c22097753601f830160051c810191602084106117aa575b601f0160051c01905b81811061179e5750611589565b60008155600101611791565b9091508190611788565b015190508480611531565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169060676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae9160005b81811061186757509583600195969710611830575b505050811b01606755611564565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055848080611822565b9192602060018192868b01518155019401920161180d565b60676000527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae601f830160051c810191602084106118da575b601f0160051c01905b8181106118ce5750611517565b600081556001016118c1565b90915081906118b8565b01519050868061145a565b60376000527f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae9560005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0841681106119bc57509582916114949697837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06001961610611985575b505050811b0160375561148d565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080611977565b82820151885560019097019660209283019201611919565b6037600052601f820160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae019060208310611a4f575b601f0160051c7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae01905b818110611a43575061143d565b60008155600101611a36565b7f42a7b7dd785cd69714a189dffb3fd7d7174edc9ece837694ce50f7078f7c31ae9150611a0c565b0151905086806113e5565b925060366000527f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8906000935b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084168510611b4b5760019450837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0811610611b14575b505050811b01603655611418565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c19169055868080611b06565b81810151835560209485019460019093019290910190611aaf565b9091506036600052601f830160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b80160208410611be9575b908392915b601f820160051c7f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8018110611bda57506113ce565b60008155849350600101611ba5565b507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b8611ba0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011760005586611377565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152fd5b50303b15801561133f5750600160ff83161461133f565b50600160ff831610611338565b346101ac5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac57610771611d21611e4a565b60243590336123be565b346101ac5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101ac576000603654611d6881611f4b565b80845290600190818116908115610ba05750600114611d9157610b4184610b2d81860382611fbb565b6036600090815292507f4a11f94e20a93c79f6ec743a1954ec4fc2c08429ae2122118bf234b2185c81b85b828410611dd4575050508101602001610b2d82610b1d565b80546020858701810191909152909301928101611dbc565b919082519283825260005b848110611e365750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b602081830181015184830182015201611df7565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036101ac57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101ac57565b9181601f840112156101ac5782359167ffffffffffffffff83116101ac57602083818601950101116101ac57565b60e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126101ac5773ffffffffffffffffffffffffffffffffffffffff9160043583811681036101ac579260243590811681036101ac579160443591606435916084359160a4359160c4359067ffffffffffffffff82116101ac57611f4791600401611e90565b9091565b90600182811c92168015611f94575b6020831014611f6557565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691611f5a565b610100810190811067ffffffffffffffff8211176106d457604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176106d457604052565b604051906000826067549161201083611f4b565b808352926001908181169081156120985750600114612039575b5061203792500383611fbb565b565b6067600090815291507f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae5b84831061207d575061203793505081016020013861202a565b81935090816020925483858a01015201910190918592612064565b602093506120379592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861202a565b60405190600082606854916120ec83611f4b565b808352926001908181169081156120985750600114612112575061203792500383611fbb565b6068600090815291507fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977535b848310612156575061203793505081016020013861202a565b81935090816020925483858a0101520191019091859261213d565b9190820180921161217e57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff80911691821561233a57169182156122b6576000828152603360205260408120549180831061223257604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95876020965260338652038282205586815220818154019055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e636500000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff8091169182156124b0571691821561242c5760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925918360005260348252604060002085600052825280604060002055604051908152a3565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b67ffffffffffffffff81116106d457601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b92919261257982612533565b916125876040519384611fbb565b8294818452818301116101ac578281602093846000960137010152565b156125ab57565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152fd5b6126376126a5565b61263f6126f0565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff8211176106d45760405251902090565b6126ad611ffc565b80519081156126bd576020012090565b505060655480156126cb5790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6126f86120d8565b8051908115612708576020012090565b505060665480156126cb5790565b906127218382612893565b600581959295101561286457159384612841575b508315612743575b50505090565b909192506040516127bd8161279160208201947f1626ba7e00000000000000000000000000000000000000000000000000000000968787526024840152604060448401526064830190611dec565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611fbb565b6000938492839251915afa913d15612839573d906127da82612533565b916127e86040519384611fbb565b82523d81602084013e5b8361282b575b83612809575b50505038808061273d565b90919250602082805181010312612828575060200151143880806127fe565b80fd5b9250602081511015926127f8565b6060906127f2565b73ffffffffffffffffffffffffffffffffffffffff848116911614935038612735565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9060418151146000146128bd57611f47916020820151906060604084015193015160001a906128c7565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116129575791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa1561294a57815173ffffffffffffffffffffffffffffffffffffffff811615612944579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b93909194928042116104bb5773ffffffffffffffffffffffffffffffffffffffff8086169687600052609b6020526040600020918254926001840190556040519560208701997f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98b526040880152166060860152608085015260a084015260c083015260c0825260e0820182811067ffffffffffffffff8211176106d457612a1b9561065f9361040c926040525190206103d461262f565b1561025b5756fea26469706673582212204448ed87e6c53603eb1ec357b506fdec534f023b585f44a4628b237a23c4e21f64736f6c63430008140033