[ { "inputs": [ { "components": [ { "internalType": "address", "name": "proxyAdminOwnerAddress", "type": "address" }, { "internalType": "string", "name": "eip712Name", "type": "string" }, { "internalType": "string", "name": "eip712Version", "type": "string" } ], "internalType": "struct ConstructorParams", "name": "_params", "type": "tuple" } ], "stateMutability": "payable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "frozenAccount", "type": "address" } ], "name": "AccountIsFrozen", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [], "name": "AgoraDollarErc1967NonPayable", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "ExpiredAuthorization", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [], "name": "ImplementationTargetNotAContract", "type": "error" }, { "inputs": [], "name": "InvalidAuthorization", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" }, { "internalType": "address", "name": "payee", "type": "address" } ], "name": "InvalidPayee", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "ProxyDeniedAdminAccess", "type": "error" }, { "inputs": [], "name": "SignatureVerificationPaused", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "inputs": [], "name": "TransferPaused", "type": "error" }, { "inputs": [], "name": "UsedOrCanceledAuthorization", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "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": [ { "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" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "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": [ { "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": "uint8", "name": "_v", "type": "uint8" }, { "internalType": "bytes32", "name": "_r", "type": "bytes32" }, { "internalType": "bytes32", "name": "_s", "type": "bytes32" } ], "name": "receiveWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_transferValue", "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": "_transferValue", "type": "uint256" } ], "name": "transferFrom", "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": "_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" }, { "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": "uint8", "name": "_v", "type": "uint8" }, { "internalType": "bytes32", "name": "_r", "type": "bytes32" }, { "internalType": "bytes32", "name": "_s", "type": "bytes32" } ], "name": "transferWithAuthorization", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101806040908082526200223880380380916200001d828562000267565b83398101916020908183850312620002635782516001600160401b039384821162000263570190606082860312620002635780519160608301838110868211176200024f57825280516001600160a01b0391908281168103620002635784528481015186811162000263578762000096918301620002ae565b96858501978852838201518781116200026357620000b59201620002ae565b9586838501525192620000c88462000309565b95610120968752620000da8862000309565b94610140958652868151910120978860e05286815191012061010098818a524660a052855191888301917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f83528784015260608301524660808301523060a083015260a0825260c0820193828510848611176200024f578591858852835190206080523060c05251169161078f928383019160c0830190868210908211176200024f57899462001aa98739520301905ff080156200024557166101608181527fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610380546001600160a01b0319168317905582515f815294850191909152927f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f908290a1519261173194856200037886396080518561146f015260a0518561152a015260c05185611440015260e051856114be015251846114e40152518350505182505051816104560152f35b82513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b601f909101601f19168101906001600160401b038211908210176200024f57604052565b5f5b8381106200029d5750505f910152565b81810151838201526020016200028d565b81601f82011215620002635780516001600160401b0381116200024f5760405192620002e5601f8301601f19166020018562000267565b8184526020828401011162000263576200030691602080850191016200028b565b90565b601f8151116200033657602081519101516020821062000327571790565b5f198260200360031b1b161790565b6044604051809263305a27a960e01b8252602060048301526200036981518092816024860152602086860191016200028b565b601f01601f19168101030190fdfe60806040526004361015610018575b61001661043d565b005b5f3560e01c806323b872dd1461007757806388b7ab6314610072578063a9059cbb1461006d578063cf09299514610068578063e3ee160e146100635763ef55bec60361000e57610421565b61038b565b610300565b6102b7565b61029a565b346100d65760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65760206100cc6004356100b7816100da565b6024356100c3816100da565b60443591610c88565b6040519015158152f35b5f80fd5b73ffffffffffffffffffffffffffffffffffffffff8116036100d657565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60c0810190811067ffffffffffffffff82111761014157604052565b6100f8565b610100810190811067ffffffffffffffff82111761014157604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761014157604052565b67ffffffffffffffff811161014157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b81601f820112156100d6578035906101f5826101a4565b926102036040519485610163565b828452602083830101116100d657815f926020809301838601378301015290565b60e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126100d65760043561025a816100da565b91602435610267816100da565b9160443591606435916084359160a4359160c4359067ffffffffffffffff82116100d657610297916004016101de565b90565b346100d6576100166102ab36610224565b95949094939193611550565b346100d65760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100d65760206100cc6004356102f7816100da565b6024359061078a565b346100d65761001661031136610224565b95949094939193610f1b565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6101209101126100d657600435610354816100da565b90602435610361816100da565b9060443590606435906084359060a4359060c43560ff811681036100d6579060e435906101043590565b346100d65761001661041c6103f06103a23661031d565b60408051602081019390935282015260f89190911b7fff0000000000000000000000000000000000000000000000000000000000000016606082015297909691959294929188906061820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101895288610163565b610f1b565b346100d6576100166104386103f06103a23661031d565b611550565b73ffffffffffffffffffffffffffffffffffffffff90337f0000000000000000000000000000000000000000000000000000000000000000831603610567575f9182357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146104f25760046040517fd2b576ec000000000000000000000000000000000000000000000000000000008152fd5b366004116105635760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126105635760043590610531826100da565b6024359367ffffffffffffffff8511610560575061055761055e939436906004016101de565b91166105aa565b565b80fd5b8280fd5b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54165b5f808092368280378136915af43d82803e156105a6573d90f35b3d90fd5b803b156106c05773ffffffffffffffffffffffffffffffffffffffff8116907f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556040515f927fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a283511561068c5750818084602061068096519101845af4903d15610683573d610663816101a4565b906106716040519283610163565b8152809360203d92013e6106ea565b50565b606092506106ea565b92505050346106985750565b807fcfc04b400000000000000000000000000000000000000000000000000000000060049252fd5b60046040517f9db85088000000000000000000000000000000000000000000000000000000008152fd5b9061072957508051156106ff57805190602001fd5b60046040517f1425ea42000000000000000000000000000000000000000000000000000000008152fd5b81511580610781575b61073a575090565b60249073ffffffffffffffffffffffffffffffffffffffff604051917f9996b315000000000000000000000000000000000000000000000000000000008352166004820152fd5b50803b15610732565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc549190744000000000000000000000000000000000000000008316156107e75773ffffffffffffffffffffffffffffffffffffffff831661058c565b9091741000000000000000000000000000000000000000001661081c5761081061081792610846565b90336108d1565b600190565b60046040517fcd1fda9f000000000000000000000000000000000000000000000000000000008152fd5b7f0100000000000000000000000000000000000000000000000000000000000000811015610892577effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b6335278d125f526004601cfd5b906040516040810181811067ffffffffffffffff82111761014157604052915460ff81161515835260081c6020830152565b919061092261091d8473ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70060205260405f2090565b61089f565b8051610c415760200180517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9081169084168110610bca57506109af8361098a610a2893517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b037effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b6109f68573ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70060205260405f2090565b9060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083549260081b169116179055565b610a7261091d8273ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70060205260405f2090565b8051610b835790610b39610af284610acd60207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9601517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b017effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1690565b6109f68373ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70060205260405f2090565b6040517effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff93909316835273ffffffffffffffffffffffffffffffffffffffff908116931691602090a3565b6040517fcf8eb59700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83166004820152602490fd5b6040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861660048201527effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91821660248201529084166044820152606490fd5b6040517fcf8eb59700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602490fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54929174800000000000000000000000000000000000000000841615610ce55773ffffffffffffffffffffffffffffffffffffffff841661058c565b909192740100000000000000000000000000000000000000008116151580610d75575b610d4457741000000000000000000000000000000000000000001661081c57610d3e83610d39610817953386610dcc565b610846565b916108d1565b6040517fcf8eb597000000000000000000000000000000000000000000000000000000008152336004820152602490fd5b50610dc7610dc03373ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70060205260405f2090565b5460ff1690565b610d08565b91610e3b82610e188573ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70160205260405f2090565b9073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8103610e6a575b50505050565b818110610ec957610ebf9291610e1891039373ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70160205260405f2090565b555f808080610e64565b6064935073ffffffffffffffffffffffffffffffffffffffff604051937ffb8f41b200000000000000000000000000000000000000000000000000000000855216600484015260248301526044820152fd5b9492909593917f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54967501000000000000000000000000000000000000000000881615155f14610f815773ffffffffffffffffffffffffffffffffffffffff881661058c565b90919293949596740100000000000000000000000000000000000000008116151580611016575b610d445774100000000000000000000000000000000000000000811661081c577420000000000000000000000000000000000000000016610fec5761055e96611066565b60046040517fe283c875000000000000000000000000000000000000000000000000000000008152fd5b50611061610dc03373ffffffffffffffffffffffffffffffffffffffff165f527f455730fed596673e69db1907be2e521374ba893f1a04cc5f5dd931616cd6b70060205260405f2090565b610fa8565b94959290939581421115611141578642101561111757611111610d3e94610d399361055e99611095858b611311565b6040519060208201927f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267845273ffffffffffffffffffffffffffffffffffffffff808d1660408501528b16606084015288608084015260a083015260c08201528460e082015260e0815261110881610146565b5190208861116b565b8561138f565b60046040517fa899ef93000000000000000000000000000000000000000000000000000000008152fd5b60046040517f2ce87eeb000000000000000000000000000000000000000000000000000000008152fd5b90916042611177611429565b6040948551917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522073ffffffffffffffffffffffffffffffffffffffff5f9316806111fd575b505050156111d45750565b600490517f8baa579f000000000000000000000000000000000000000000000000000000008152fd5b90919250835191805f52602091828501518652858551146112c1575b6041855114611281575b5f6060528386527f1626ba7e00000000000000000000000000000000000000000000000000000000938481526004928382015260248101958693888552815186019081604493848601925afa503d01915afa915114165f80806111c9565b6060808601515f1a84528686015181526001848160805f825afa5183183d1517156112ad575050611223565b92509450505f9150925282525f80806111c9565b85850151601b8160ff1c0184527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6060911681526001848160805f825afa5183183d1517156112ad575050611219565b73ffffffffffffffffffffffffffffffffffffffff165f527fbb0a37da742be2e3b68bdb11d195150f4243c03fb37d3cdfa756046082a3860060205260405f20905f5260205260ff60405f20541661136557565b60046040517f1dbc01d4000000000000000000000000000000000000000000000000000000008152fd5b73ffffffffffffffffffffffffffffffffffffffff167f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a55f8281527fbb0a37da742be2e3b68bdb11d195150f4243c03fb37d3cdfa756046082a38600602052604081208482526020526040812060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905580a3565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301480611527575b15611491577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261152181610125565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611468565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc549693959094919392919075020000000000000000000000000000000000000000008816156115b65773ffffffffffffffffffffffffffffffffffffffff881661058c565b9091929394959674100000000000000000000000000000000000000000811661081c577420000000000000000000000000000000000000000016610fec573373ffffffffffffffffffffffffffffffffffffffff8616036116e45786421115611141578142101561111757611111610d3e948785611108896116b887610d399961055e9f6116448389611311565b60405196879560208701998a9260c09491979695929760e08501987fd099cc98ef71107a616c4f0f941f04c322d8e254fe26b3c6668db87aae413de8865273ffffffffffffffffffffffffffffffffffffffff80921660208701521660408501526060840152608083015260a08201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610163565b6040517ffea9444200000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff86166024820152604490fd6080346100c057601f61078f38819003918201601f19168301916001600160401b038311848410176100c4578084926020946040528339810103126100c057516001600160a01b0390818116908190036100c05780156100a85760018060a01b0319918260015416600155815f54938416175f5560405192167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36106b690816100d98239f35b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe604060808152600480361015610013575f80fd5b5f91823560e01c908163715018a61461056557816379ba5097146104855781638da5cb5b146104345781639623609d1461023b578163ad3cb1cc1461017a578163e30c397814610127575063f2fde38b1461006c575f80fd5b346101235760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610123573573ffffffffffffffffffffffffffffffffffffffff80821680920361011f576100c3610666565b6100cb610666565b817fffffffffffffffffffffffff000000000000000000000000000000000000000060015416176001558254167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008380a380f35b5f80fd5b5080fd5b83903461012357817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101235760209073ffffffffffffffffffffffffffffffffffffffff600154169051908152f35b9050823461023857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610238575080519080820182811067ffffffffffffffff82111761020c5761020893508152600582527f352e302e3000000000000000000000000000000000000000000000000000000060208301525191829160208352602083019061060a565b0390f35b6041847f4e487b71000000000000000000000000000000000000000000000000000000005f525260245ffd5b80fd5b905060607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103ce57813573ffffffffffffffffffffffffffffffffffffffff928382168092036103d25760249182359485168095036104305760443567ffffffffffffffff9182821161042c573660238301121561042c5781840135838111610401577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092875193603f81601f85011601168401848110868211176103d65788528184528993929190368282018901116103d2578185928960209301838701378401015261032b610666565b803b156103ce576103749787518099819482937f4f1ef286000000000000000000000000000000000000000000000000000000008452898401528a8a840152604483019061060a565b039134905af180156103c457610388578580f35b841161039a575050525f808080808580f35b604185917f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b84513d88823e3d90fd5b8280fd5b8480fd5b878b6041897f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b85896041877f4e487b7100000000000000000000000000000000000000000000000000000000835252fd5b8780fd5b8580fd5b83903461012357817ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101235773ffffffffffffffffffffffffffffffffffffffff60209254169051908152f35b9050346103ce57827ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103ce576001549173ffffffffffffffffffffffffffffffffffffffff9133838516036105355750507fffffffffffffffffffffffff0000000000000000000000000000000000000000809216600155825491339083161783553391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b6024925051907f118cdaa70000000000000000000000000000000000000000000000000000000082523390820152fd5b833461023857807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102385761059c610666565b8073ffffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff0000000000000000000000000000000000000000806001541660015582549081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b91908251928382525f5b8481106106525750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f845f6020809697860101520116010190565b602081830181015184830182015201610614565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361068657565b60246040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152fd000000000000000000000000000000000000000000000000000000000000002000000000000000000000000068898b77ebf7b55dca8a2e62d6fd74959a2930e2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000c41676f726120446f6c6c6172000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000