[ { "inputs": [ { "internalType": "contract IERC20", "name": "_wnt", "type": "address" }, { "internalType": "contract IUniswapV2Router02", "name": "_univ2router", "type": "address" }, { "internalType": "address", "name": "_treasury", "type": "address" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "string", "name": "baseURI_", "type": "string" }, { "internalType": "uint96", "name": "_totalSupply", "type": "uint96" }, { "internalType": "uint256", "name": "_tokenLiquidityThreshold", "type": "uint256" }, { "internalType": "contract IUniswapV2Factory", "name": "univ2factory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "DNAlreadyInitialized", "type": "error" }, { "inputs": [], "name": "FnSelectorNotRecognized", "type": "error" }, { "inputs": [], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [], "name": "InsufficientBalance", "type": "error" }, { "inputs": [], "name": "LinkMirrorContractFailed", "type": "error" }, { "inputs": [], "name": "MirrorAddressIsZero", "type": "error" }, { "inputs": [], "name": "SenderNotMirror", "type": "error" }, { "inputs": [], "name": "TokenDoesNotExist", "type": "error" }, { "inputs": [], "name": "TotalSupplyOverflow", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "UnitIsZero", "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": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "status", "type": "bool" } ], "name": "SkipNFTSet", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "inputs": [], "name": "PRECISION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SWAP_TAX", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "getSkipNFT", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mirrorERC721", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "skipNFT", "type": "bool" } ], "name": "setSkipNFT", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "_result", "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": [], "name": "treasury", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "univ2router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "wnt", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e06040523480156200001157600080fd5b5060405162003b5838038062003b5883398101604081905262000034916200072a565b60016000556001600160a01b03808a1660a05280891660c05287166080528888884660fc0362000193576040516001600160a01b0382166024820152734392dc16867d53dbfe227076606455634d4c279590819060440160408051601f198184030181529181526020820180516001600160e01b03166302b8a21d60e01b17905251620000c2919062000824565b6000604051808303816000865af19150503d806000811462000101576040519150601f19603f3d011682016040523d82523d6000602084013e62000106565b606091505b505060408051600481526024810182526020810180516001600160e01b03166325ce9a3760e01b17905290516001600160a01b03841692506200014a919062000824565b6000604051808303816000865af19150503d806000811462000189576040519150601f19603f3d011682016040523d82523d6000602084013e6200018e565b606091505b505050505b5060019150620001a690508782620008d3565b506002620001b58682620008d3565b506003620001c48582620008d3565b5062000218836001600160601b0316336000604051620001e49062000611565b6001600160a01b039091168152602001604051809103906000f08015801562000211573d6000803e3d6000fd5b50620002f1565b600680546001600160a01b031916331790556040516364e329cb60e11b81523060048201526001600160a01b038a8116602483015282169063c9c65396906044016020604051808303816000875af115801562000279573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029f91906200099f565b600580546001600160a01b039283166001600160a01b03199182161790915560048054928b1692909116821790556007839055620002e2903090600019620004b3565b505050505050505050620009c6565b68a20d6e21d0e52553095468a20d6e21d0e5255308906001600160a01b0316156200032f57604051633ab534b960e21b815260040160405180910390fd5b6001600160a01b03821662000357576040516339a84a7b60e01b815260040160405180910390fd5b630f4599e560005233602052602060006024601c6000865af1600160005114166200038a5763d125259c6000526004601cfd5b805463ffffffff60201b19166401000000001781556001810180546001600160a01b0384166001600160a01b03199091161790558315620004ad576001600160a01b038316620003ed57604051633a954ecd60e21b815260040160405180910390fd5b606084901c670de0b6b3a7640000850463fffffffe101715620004235760405163e5cfe95760e01b815260040160405180910390fd5b80546001600160a01b0316600160a01b6001600160601b0386160217815560006200044e8462000515565b80546001600160601b038716600160a01b026001600160a01b0391821617825560008781529192508516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a3620004ab84600162000580565b505b50505050565b6028828152601484905268a20d6e21d0e525530f600090815260488120915281905560008181526001600160a01b0380841691908516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3505050565b6001600160a01b038116600090815268a20d6e21d0e525531360205260408120805490916b01000000000000000000000090910460011690036200057b57805460ff60581b19166b01000000000000000000000060ff843b151560020260011716021781555b919050565b60006200058d8362000515565b80549091506b0100000000000000000000009004600216151582151514620005d957805460ff6b01000000000000000000000080830482166002189091160260ff60581b199091161781555b8115156000528260601b60601c7fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360206000a2505050565b610d8b8062002dcd83390190565b6001600160a01b03811681146200063557600080fd5b50565b80516200057b816200061f565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620006785781810151838201526020016200065e565b50506000910152565b600082601f8301126200069357600080fd5b81516001600160401b0380821115620006b057620006b062000645565b604051601f8301601f19908116603f01168101908282118183101715620006db57620006db62000645565b81604052838152866020858801011115620006f557600080fd5b620007088460208301602089016200065b565b9695505050505050565b80516001600160601b03811681146200057b57600080fd5b60008060008060008060008060006101208a8c0312156200074a57600080fd5b620007558a62000638565b98506200076560208b0162000638565b97506200077560408b0162000638565b60608b01519097506001600160401b03808211156200079357600080fd5b620007a18d838e0162000681565b975060808c0151915080821115620007b857600080fd5b620007c68d838e0162000681565b965060a08c0151915080821115620007dd57600080fd5b50620007ec8c828d0162000681565b945050620007fd60c08b0162000712565b925060e08a01519150620008156101008b0162000638565b90509295985092959850929598565b60008251620008388184602087016200065b565b9190910192915050565b600181811c908216806200085757607f821691505b6020821081036200087857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008ce576000816000526020600020601f850160051c81016020861015620008a95750805b601f850160051c820191505b81811015620008ca57828155600101620008b5565b5050505b505050565b81516001600160401b03811115620008ef57620008ef62000645565b620009078162000900845462000842565b846200087e565b602080601f8311600181146200093f5760008415620009265750858301515b600019600386901b1c1916600185901b178555620008ca565b600085815260208120601f198616915b8281101562000970578886015182559484019460019091019084016200094f565b50858210156200098f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620009b257600080fd5b8151620009bf816200061f565b9392505050565b60805160a05160c0516123d0620009fd60003960006105850152600061050201526000818161065b0152611dde01526123d06000f3fe6080604052600436106101235760003560e01c806361d027b3116100a0578063a9059cbb11610064578063a9059cbb146106e7578063aaf5eb6814610707578063c87b56dd1461071d578063dd62ed3e1461073d578063f887ea401461077c57610135565b806361d027b31461064957806370a082311461067d57806395d89b411461069d57806399e37dff146106b2578063a8aa1b31146106c757610135565b806323b872dd116100e757806323b872dd146105a7578063274e430b146105c75780632a6a935d146105e7578063313ce567146106075780634ef41efc1461062357610135565b806306fdde0314610495578063095ea7b3146104c0578063126846ec146104f057806318160ddd1461053c57806319eff2b91461057357610135565b3661013557341561013357600080fd5b005b68a20d6e21d0e52553095468a20d6e21d0e52553089060003560e01c906001600160a01b031663e5eb36c88290036101ae57336001600160a01b038216146101905760405163ce5a776b60e01b815260040160405180910390fd5b6101a460043560243560443560643561079c565b6101ae6001610b2c565b8163813500fc0361021657336001600160a01b038216146101e25760405163ce5a776b60e01b815260040160405180910390fd5b600435602890815260443560145268a20d6e21d0e525530b6000908152604881209152602435151590556102166001610b2c565b8163e985e9c50361027457336001600160a01b0382161461024a5760405163ce5a776b60e01b815260040160405180910390fd5b6024356028908152600435601452600384016000908152604881209152805461027290610b2c565b505b81636352211e036102c457336001600160a01b038216146102a85760405163ce5a776b60e01b815260040160405180910390fd5b6102c46102b6600435610b36565b6001600160a01b0316610b2c565b8163243598790361030657336001600160a01b038216146102f85760405163ce5a776b60e01b815260040160405180910390fd5b6103066102b6600435610b6d565b8163d10b6e0c0361036357336001600160a01b0382161461033a5760405163ce5a776b60e01b815260040160405180910390fd5b600061034d600435602435604435610bca565b9050610361816001600160a01b0316610b2c565b505b8163081812fc036103a557336001600160a01b038216146103975760405163ce5a776b60e01b815260040160405180910390fd5b6103a56102b6600435610cc2565b8163f5b100ea0361041257336001600160a01b038216146103d95760405163ce5a776b60e01b815260040160405180910390fd5b6001600160a01b0360043516600090815268a20d6e21d0e5255313602052604090205461041290600160801b900463ffffffff16610b2c565b8163e2c792810361046757336001600160a01b038216146104465760405163ce5a776b60e01b815260040160405180910390fd5b68a20d6e21d0e52553085461046790600160801b900463ffffffff16610b2c565b8163b7a94eb80361047c5761047c6001610b2c565b604051631e085ca760e11b815260040160405180910390fd5b3480156104a157600080fd5b506104aa610d0e565b6040516104b7919061201e565b60405180910390f35b3480156104cc57600080fd5b506104e06104db366004612066565b610da0565b60405190151581526020016104b7565b3480156104fc57600080fd5b506105247f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016104b7565b34801561054857600080fd5b5068a20d6e21d0e525530854600160a01b90046001600160601b03165b6040519081526020016104b7565b34801561057f57600080fd5b506105247f000000000000000000000000000000000000000000000000000000000000000081565b3480156105b357600080fd5b506104e06105c2366004612092565b610db6565b3480156105d357600080fd5b506104e06105e23660046120d3565b610e24565b3480156105f357600080fd5b506104e06106023660046120f0565b610e73565b34801561061357600080fd5b50604051601281526020016104b7565b34801561062f57600080fd5b5068a20d6e21d0e5255309546001600160a01b0316610524565b34801561065557600080fd5b506105247f000000000000000000000000000000000000000000000000000000000000000081565b34801561068957600080fd5b506105656106983660046120d3565b610e87565b3480156106a957600080fd5b506104aa610eba565b3480156106be57600080fd5b50610565601981565b3480156106d357600080fd5b50600554610524906001600160a01b031681565b3480156106f357600080fd5b506104e0610702366004612066565b610ec9565b34801561071357600080fd5b5061056561271081565b34801561072957600080fd5b506104aa610738366004612112565b610ed6565b34801561074957600080fd5b5061056561075836600461212b565b602890815260149190915268a20d6e21d0e525530f60009081526048812091525490565b34801561078857600080fd5b50600454610524906001600160a01b031681565b6001600160a01b0383166107c357604051633a954ecd60e21b815260040160405180910390fd5b68a20d6e21d0e52553095468a20d6e21d0e5255308906001600160a01b03166107eb57600080fd5b600a810160028201600061083583610811640100000000891089025b6000190160011b90565b60008160031c8360601b0180546007841660051b1c63ffffffff1691505092915050565b63ffffffff1681526020810191909152604001600020546001600160a01b038781169116146108765760405162a1148160e81b815260040160405180910390fd5b856001600160a01b0316836001600160a01b0316146108ec5760288381526014879052600383016000908152604881209152546000036108ec5760008481526004830160205260409020546001600160a01b038481169116146108ec57604051632ce44b5f60e11b815260040160405180910390fd5b60006108f787610f1f565b9050600061090487610f1f565b6001600160a01b038916600090815260088601602081905260409091208454929350670de0b6b3a764000092600160a01b90046001600160601b03168084111561096157604051631e9acf1760e31b815260040160405180910390fd5b85546001600160601b03918590038216600160a01b9081026001600160a01b039283161788558654818104841687019093160291161784556005870160601b60088a901c015460ff8a161c600116156109ed576005870160601b60088a901c018054600160ff8c161b191690556000898152600488016020526040902080546001600160a01b03191690555b845463ffffffff60801b198116600160801b9182900463ffffffff90811660001901808216909302919091178755606083901b631fffffff600384901c16015460009260e060059190911b161c1690506000610a53886000198d01600190811b01610811565b9050610a66838263ffffffff1684610f7f565b610a818860001963ffffffff851601600190811b0183610f7f565b5050835463ffffffff60801b198116600160801b9182900463ffffffff908116600181019091169092021785556001600160a01b038b166000908152602084905260409020610ad190828c610f7f565b610ae6878b610ae0888f610faa565b8461103d565b50826000528960601b60601c8b60601b60601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a35050505050505050505050565b8060005260206000f35b6000610b4182611080565b610b5e5760405163677510db60e11b815260040160405180910390fd5b610b6782610b6d565b92915050565b600068a20d6e21d0e525530868a20d6e21d0e525530a82610ba368a20d6e21d0e525531261081164010000000088108802610807565b63ffffffff1681526020810191909152604001600020546001600160a01b03169392505050565b600068a20d6e21d0e525530868a20d6e21d0e525530a82610c0068a20d6e21d0e525531261081164010000000089108902610807565b63ffffffff1681526020810191909152604001600020546001600160a01b03908116925083168214610c66576028838152601483905260038201600090815260488120915254600003610c66576040516367d9dca160e11b815260040160405180910390fd5b6000848152600482016020526040902080546001600160a01b0319166001600160a01b0387169081179091556005820160601b600886901c018054600160ff881690811b1991909116921515901b919091179055509392505050565b6000610ccd82611080565b610cea5760405163677510db60e11b815260040160405180910390fd5b50600090815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b606060018054610d1d90612164565b80601f0160208091040260200160405190810160405280929190818152602001828054610d4990612164565b8015610d965780601f10610d6b57610100808354040283529160200191610d96565b820191906000526020600020905b815481529060010190602001808311610d7957829003601f168201915b5050505050905090565b6000610dad33848461109d565b50600192915050565b336028908152601484905268a20d6e21d0e525530f6000908152604881209181905281549091906000198114610e0d5780841115610e07576040516313be252b60e01b815260040160405180910390fd5b83810382555b610e188686866110ff565b50600195945050505050565b6001600160a01b038116600090815268a20d6e21d0e5255313602052604081208054600160581b90046001168203610e6057823b5b9392505050565b54600160581b9004600216151592915050565b6000610e7f338361121b565b506001919050565b6001600160a01b0316600090815268a20d6e21d0e52553136020526040902054600160a01b90046001600160601b031690565b606060028054610d1d90612164565b6000610dad3384846110ff565b606060038054610ee590612164565b159050610f1a576003610ef783611299565b604051602001610f089291906121ba565b60405160208183030381529060405290505b919050565b6001600160a01b038116600090815268a20d6e21d0e52553136020526040812080549091600160581b9091046001169003610f1a57805460ff60581b1916600160581b60ff933b1515600202600117939093169290920291909117815590565b8160031c8360601b016007831660051b815480821c841863ffffffff16821b81188355505050505050565b8154600160601b900463ffffffff1668a20d6e21d0e5255308600082900361103657805463ffffffff198116600163ffffffff928316019182169081178355855463ffffffff60601b1916600160601b82021786556000818152600284016020526040812080546001600160a01b0319166001600160a01b038816179055919350900361103657600080fd5b5092915050565b600183038060021c8560601b0180546003831660061b92508463ffffffff168460201b178082851c1867ffffffffffffffff16841b821883555050505050505050565b60008061108c83610b6d565b6001600160a01b0316141592915050565b6028828152601484905268a20d6e21d0e525530f600090815260488120915281905560008181526001600160a01b0380841691908516907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3505050565b600081116111655760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840160405180910390fd5b6005546000906001600160a01b038481169116148061119157506005546001600160a01b038581169116145b156111f0576001600160a01b0383163014806111b557506001600160a01b03841630145b6111f0576006546001600160a01b038581169116146111f0576127106111dc60198461227c565b6111e691906122a9565b90506111f061132c565b61120484846111ff84866122cb565b61134e565b80156112155761121584308361134e565b50505050565b600061122683610f1f565b8054909150600160581b900460021615158215151461126157805460ff600160581b80830482166002189091160260ff60581b199091161781555b8115156000528260601b60601c7fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360206000a2505050565b606060006112a683611bea565b600101905060008167ffffffffffffffff8111156112c6576112c66122de565b6040519080825280601f01601f1916602001820160405280156112f0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846112fa57509392505050565b600061133730610e87565b9050600754811061134b5761134b81611cc2565b50565b6001600160a01b03821661137557604051633a954ecd60e21b815260040160405180910390fd5b600061138084610f1f565b9050600061138d84610f1f565b68a20d6e21d0e52553095490915068a20d6e21d0e5255308906001600160a01b03166113b857600080fd5b61142f604051806101a0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600063ffffffff16815260200160008152602001600063ffffffff1681525090565b835463ffffffff600160801b808304821660808501528554041660a083015282546001600160601b03600160a01b91829004811660c08501529104166040820181905285111561149257604051631e9acf1760e31b815260040160405180910390fd5b6040810180518690039081905284546001600160601b03918216600160a01b9081026001600160a01b0392831617875585548181048416890160608601819052909316029116178355608081015161150f906114f3670de0b6b3a764000090565b83604001518161150557611505612293565b0480821191030290565b81528254600160581b900460021660000361157e57856001600160a01b0316876001600160a01b03160361154b57805160808201510360a08201525b611578670de0b6b3a764000082606001518161156957611569612293565b048260a0015180821191030290565b60208201525b60006115ab82608001516115a084600001518560200151808218908211021890565b808218908211021890565b9050806000036115bb575061178f565b8151819003825260208201805182900390526001600160a01b03808816908916036115f05760a082018051909101905261178f565b604080516080810182526000808252602080830182815283850183815260608086019081528651888152600589901b81018501885290819052908d9052908d9052810183526001600160a01b03808d16835260088801909152838220908b168252929020909190611661878b610faa565b63ffffffff1661014086015260a08501515b6080860180516000190190819052600381901c606085901b015460009160051b60e0161c63ffffffff1663ffffffff1690506116b0838383610f7f565b6116ca88600a01828961014001518580600101965061103d565b84518181526020018552600881901c6005890160601b015460ff82161c60011615611728576005880160601b600882901c018054600160ff84161b191690556000818152600489016020526040902080546001600160a01b03191690555b506000198501946000036001016116735760a08601819052875463ffffffff808316600160801b90810263ffffffff60801b19938416178b5560808901518c54921602911617895560018701546117899085906001600160a01b0316611e3c565b50505050505b80516020820151835463ffffffff600160801b8083048216840185900360e087018190529091160263ffffffff60801b19909116178455600a8401916000916117d89101611e90565b8454600160601b900463ffffffff1661018085015283519091501561196b57606089901b6001176020828101919091526001600160a01b038a16600090815260088601909152604081206080850151855181036101008701819052895463ffffffff909116600160801b0263ffffffff60801b199091161789556101808601515b60001991909101600381901c606084901b0154909190600583901b60e0161c63ffffffff1661188b878260008061103d565b8551602080880151600884901b1782520186526006890160601b600882901c018054600160ff84161b1916905584156118d8576118d8896009018380600101945063ffffffff1683610f7f565b600881901c60058a0160601b015460ff82161c6001161561192c576005890160601b600882901c018054600160ff84161b19169055600081815260048a016020526040902080546001600160a01b03191690555b5086610100015182036118595783156119665763ffffffff81166101808801819052885463ffffffff60601b1916600160601b9091021788555b505050505b602083015115611b8357606088901b60208201526001600160a01b038816600090815260088501602052604090206119a3868a610faa565b63ffffffff166101408501526000670de0b6b3a76400008560c00151816119cc576119cc612293565b87549190049150640100000000900463ffffffff1681811180159091021761016086015260a0850151602086015181016101208701819052885463ffffffff60801b1916600160801b63ffffffff928316021789558754600160401b9004165b600087610180015163ffffffff168263ffffffff1614611a7c576009890160601b631fffffff600384901c160154600183019260e060059190911b161c63ffffffff1663ffffffff169050611ade565b506101608701515b611a9587600019830160011b610811565b63ffffffff1615611aca57611ac3611ab78a6006018360010187600101611ed7565b85811180159091021790565b9050611a84565b600181018481118015909102176101608901525b600881901c60068a0160601b018054600160ff84161b8019909116179055611b07858483610f7f565b611b1e87828a61014001518680600101975061103d565b8551602080880151600884901b178252018652508661012001518203611a2c57875461016088015163ffffffff9081166401000000000267ffffffff000000001991909316600160401b02166bffffffffffffffff0000000019909116171787555050505b60408101515115611ba7576001840154611ba79082906001600160a01b0316611fbe565b5050846000528560601b60601c8760601b60601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60206000a350505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c295772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611c55576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c7357662386f26fc10000830492506010015b6305f5e1008310611c8b576305f5e100830492506008015b6127108310611c9f57612710830492506004015b60648310611cb1576064830492506002015b600a8310610b675760010192915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611cf757611cf76122f4565b60200260200101906001600160a01b031690816001600160a01b031681525050600460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8e919061230a565b81600181518110611da157611da16122f4565b6001600160a01b0392831660209182029290920101526004805460405163791ac94760e01b815292169163791ac94791611e0691869160009187917f000000000000000000000000000000000000000000000000000000000000000091429101612327565b600060405180830381600087803b158015611e2057600080fd5b505af1158015611e34573d6000803e3d6000fd5b505050505050565b6060820151805160051b60840160808203915063144027d3825283602001518460400151816020850152806040850152505060608083015260208282601c85016000875af160018351141661121557600082fd5b611eb460405180606001604052806000815260200160008152602001606081525090565b604051828152806020018360051b81016040528183604001528083525050919050565b6000801990508360601b8360081c81018054198560ff161c8560ff161b80611f2c578460081c83015b6001830192508254199150808311821715611f005780831115611f2a5760ff86191691821b90911c905b505b8015611fb45782820360081b7e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405821960010183166fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff1060061b1781811c63ffffffff1060051b1790811c63d76453e004601f169190911a171785811015878210176000031793505b5050509392505050565b60408201516040810363263c69d68152602080820152815160051b604401915060208183601c84016000875af160018251141661121557600081fd5b60005b83811015612015578181015183820152602001611ffd565b50506000910152565b602081526000825180602084015261203d816040850160208701611ffa565b601f01601f19169190910160400192915050565b6001600160a01b038116811461134b57600080fd5b6000806040838503121561207957600080fd5b823561208481612051565b946020939093013593505050565b6000806000606084860312156120a757600080fd5b83356120b281612051565b925060208401356120c281612051565b929592945050506040919091013590565b6000602082840312156120e557600080fd5b8135610e5981612051565b60006020828403121561210257600080fd5b81358015158114610e5957600080fd5b60006020828403121561212457600080fd5b5035919050565b6000806040838503121561213e57600080fd5b823561214981612051565b9150602083013561215981612051565b809150509250929050565b600181811c9082168061217857607f821691505b60208210810361219857634e487b7160e01b600052602260045260246000fd5b50919050565b600081516121b0818560208601611ffa565b9290920192915050565b60008084548160018260011c915060018316806121d857607f831692505b602080841082036121f757634e487b7160e01b86526022600452602486fd5b81801561220b57600181146122205761224d565b60ff198616895284151585028901965061224d565b60008b81526020902060005b868110156122455781548b82015290850190830161222c565b505084890196505b50505050505061225d818561219e565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610b6757610b67612266565b634e487b7160e01b600052601260045260246000fd5b6000826122c657634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610b6757610b67612266565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561231c57600080fd5b8151610e5981612051565b600060a08201878352602087602085015260a0604085015281875180845260c08601915060208901935060005b818110156123795784516001600160a01b031683529383019391830191600101612354565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212201c7dfacd23e7ab65b1fb3ea7d76fa3cd4de549a034be285cd9317175c174f11064736f6c63430008170033608060405234801561001057600080fd5b50604051610d8b380380610d8b83398101604081905261002f9161005c565b683602298b8c10b0123180546001600160a01b0319166001600160a01b039290921691909117905561008c565b60006020828403121561006e57600080fd5b81516001600160a01b038116811461008557600080fd5b9392505050565b610cf08061009b6000396000f3fe60806040526004361061010d5760003560e01c80636cef16e61161009557806397e5311c1161006457806397e5311c146104d7578063a22cb465146104ec578063b88d4fde1461050c578063c87b56dd1461051f578063e985e9c51461053f5761011f565b80636cef16e61461046757806370a082311461047c5780638da5cb5b1461049c57806395d89b41146104c25761011f565b806318160ddd116100dc57806318160ddd146103de57806323b872dd14610401578063243598791461041457806342842e0e146104345780636352211e146104475761011f565b806301ffc9a71461031f57806306fdde0314610371578063081812fc14610393578063095ea7b3146103cb5761011f565b3661011f57341561011d57600080fd5b005b683602298b8c10b0123060003560e01c63263c69d68190036101d55781546001600160a01b0316331461016557604051631b1e598960e11b815260040160405180910390fd5b600435602401602081033560051b81015b8082146101c85781358060601c816001168260a01b60a81c811583028284027fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4505050816020019150610176565b5050600160005260206000f35b8063144027d30361026b5781546001600160a01b0316331461020a57604051631b1e598960e11b815260040160405180910390fd5b600435602435604435602401602081033560051b81015b80821461025c57813583857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a4816020019150610221565b50505050600160005260206000f35b80630f4599e5036103065760018201546001600160a01b0316156102c15760018201546001600160a01b03166004356001600160a01b0316146102c1576040516362cf623d60e11b815260040160405180910390fd5b81546001600160a01b0316156102ea57604051635fb2b52360e11b815260040160405180910390fd5b81546001600160a01b0319163317825560016000908152602090f35b604051631e085ca760e11b815260040160405180910390fd5b34801561032b57600080fd5b5061035c61033a366004610a7a565b6301ffc9a760e09190911c9081146380ac58cd821417635b5e139f9091141790565b60405190151581526020015b60405180910390f35b34801561037d57600080fd5b5061038661055f565b6040516103689190610aab565b34801561039f57600080fd5b506103b36103ae366004610afa565b610575565b6040516001600160a01b039091168152602001610368565b61011d6103d9366004610b2f565b61058d565b3480156103ea57600080fd5b506103f3610613565b604051908152602001610368565b61011d61040f366004610b59565b610625565b34801561042057600080fd5b506103b361042f366004610afa565b6106b4565b61011d610442366004610b59565b6106c6565b34801561045357600080fd5b506103b3610462366004610afa565b6106f8565b34801561047357600080fd5b5061035c61070a565b34801561048857600080fd5b506103f3610497366004610b95565b6107c5565b3480156104a857600080fd5b50683602298b8c10b01232546001600160a01b03166103b3565b3480156104ce57600080fd5b506103866107e0565b3480156104e357600080fd5b506103b36107f1565b3480156104f857600080fd5b5061011d610507366004610bb0565b610826565b61011d61051a366004610bec565b6108a9565b34801561052b57600080fd5b5061038661053a366004610afa565b610904565b34801561054b57600080fd5b5061035c61055a366004610c87565b610914565b60606105706306fdde036000610940565b905090565b600061058763081812fc8360006109a6565b92915050565b60006105976107f1565b90508260601b60601c925060405163d10b6e0c600052836020528260405233606052602060006064601c34865af1601f3d11166105d7573d6000823e3d81fd5b806040525060006060528183600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600038a4505050565b600061057063e2c792816000806109a6565b600061062f6107f1565b90508360601b60601c93508260601b60601c925060405163e5eb36c881528460208201528360408201528260608201523360808201526020816084601c840134865af1600182511416610685573d6000823e3d81fd5b508183857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600038a450505050565b600061058763243598798360006109a6565b6106d1838383610625565b813b156106f3576106f3838383604051806020016040528060008152506109ee565b505050565b6000610587636352211e8360006109a6565b60008060006107176107f1565b9050638da5cb5b600052602060006004601c845afa600c51683602298b8c10b0123254601f3d119290921660609190911c029250683602298b8c10b01230906001600160a01b0390811690841681146107ba576002820180546001600160a01b0319166001600160a01b0386811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35b600194505050505090565b600061058763f5b100ea836001600160a01b031660006109a6565b60606105706395d89b416000610940565b683602298b8c10b01230546001600160a01b03168061082357604051632d9523d760e11b815260040160405180910390fd5b90565b60006108306107f1565b90508260601b60601c925060405163813500fc6000528360205282151560405233606052602060006064601c34865af160016000511416610874573d6000823e3d81fd5b83337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a36040525050600060605250565b6108b4858585610625565b833b156108fd576108fd85858585858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506109ee92505050565b5050505050565b606061058763c87b56dd83610940565b600061093763e985e9c5846001600160a01b0316846001600160a01b03166109a6565b15159392505050565b6060600061094c6107f1565b9050604051915083600052826020526000806024601c845afa610972573d6000833e3d82fd5b60206000803e6020600051833e8151602060005101602084013e815160208301016000815260208101604052505092915050565b6000806109b16107f1565b9050604051856000528460205283604052602060006044601c855afa601f3d11166109df573d6000823e3d81fd5b60405250506000519392505050565b60405163150b7a028082523360208301528560601b60601c604083015283606083015260808083015282518060a08401528015610a35578060c08401826020870160045afa505b60208360a48301601c860160008a5af1610a58573d15610a58573d6000843e3d83fd5b508060e01b825114610a725763d1a57ed66000526004601cfd5b505050505050565b600060208284031215610a8c57600080fd5b81356001600160e01b031981168114610aa457600080fd5b9392505050565b60006020808352835180602085015260005b81811015610ad957858101830151858201604001528201610abd565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215610b0c57600080fd5b5035919050565b80356001600160a01b0381168114610b2a57600080fd5b919050565b60008060408385031215610b4257600080fd5b610b4b83610b13565b946020939093013593505050565b600080600060608486031215610b6e57600080fd5b610b7784610b13565b9250610b8560208501610b13565b9150604084013590509250925092565b600060208284031215610ba757600080fd5b610aa482610b13565b60008060408385031215610bc357600080fd5b610bcc83610b13565b915060208301358015158114610be157600080fd5b809150509250929050565b600080600080600060808688031215610c0457600080fd5b610c0d86610b13565b9450610c1b60208701610b13565b935060408601359250606086013567ffffffffffffffff80821115610c3f57600080fd5b818801915088601f830112610c5357600080fd5b813581811115610c6257600080fd5b896020828501011115610c7457600080fd5b9699959850939650602001949392505050565b60008060408385031215610c9a57600080fd5b610ca383610b13565b9150610cb160208401610b13565b9050925092905056fea26469706673582212208292be7b9e6e4702a992db95c86b40b6a19145922563b146b28acdc87a60f8dc64736f6c63430008170033000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000004752ba5dbc23f44d87826276bf6fd6b1c372ad24000000000000000000000000c94c6fd01d83206b9548a7f084dd905770cff6bb0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000de0b6b3a76400000000000000000000000000009e5a52f57b3038f1b8eee45f28b3c1967e22799c000000000000000000000000000000000000000000000000000000000000000b4e6f7468696e6743617264000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b4e6f7468696e67436172640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d4e4e5a4b74346373664778486a4e366638634265524768717a744c375a7a6e6a4a33757375446961354b57662f00000000000000000000