[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "indexed": false, "internalType": "struct SeedData", "name": "seed_data", "type": "tuple" } ], "name": "OnMonkiTransfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "holder", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "indexed": false, "internalType": "struct SeedData", "name": "seed_data", "type": "tuple" } ], "name": "OnSemenGrow", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "holder", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "indexed": false, "internalType": "struct SeedData", "name": "seed_data", "type": "tuple" } ], "name": "OnSemenShrink", "type": "event" }, { "anonymous": false, "inputs": [], "name": "RenounceOwnership", "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": [ { "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burnCount", "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "dynamicInscription", "outputs": [ { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "internalType": "struct SeedData", "name": "data", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dynamicInscriptionTotalCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "internalType": "struct SeedData", "name": "seed_data", "type": "tuple" } ], "name": "getAnimatedSvg", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getHolderByIndex", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getHolderIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "startIndex", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "name": "getHoldersList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "internalType": "struct SeedData", "name": "seed_data", "type": "tuple" } ], "name": "getMeta", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "internalType": "struct SeedData", "name": "seed_data", "type": "tuple" } ], "name": "getSvg", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "holdersCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address", "name": "owner", "type": "address" } ], "name": "inscriptionCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "inscriptionOfOwnerByIndex", "outputs": [ { "components": [ { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint256", "name": "extra", "type": "uint256" }, { "internalType": "address", "name": "creator", "type": "address" } ], "internalType": "struct SeedData", "name": "data", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inscriptionsTotalCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "seed", "type": "uint256" } ], "name": "isOwnerOf", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "poolAddress", "type": "address" } ], "name": "launch", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "maxBuy", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ownerRenounce", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "pool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string[5]", "name": "data", "type": "string[5]" }, { "internalType": "uint256", "name": "origin", "type": "uint256" } ], "name": "setBackgrounds", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string[7][3]", "name": "data", "type": "string[7][3]" } ], "name": "setColors", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string[6][5]", "name": "data", "type": "string[6][5]" }, { "internalType": "uint256", "name": "origin", "type": "uint256" } ], "name": "setMonkis", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a060405234801561001057600080fd5b50604051806040016040528060058152602001644d6f6e6b6960d81b815250604051806040016040528060058152602001644d4f4e4b4960d81b815250338282816003908161005f9190610224565b50600461006c8282610224565b5050506001600160a01b03166080525050601380546001600160a01b031916339081179091556001610119556100bb906100a86009600a6103df565b6100b6906305f5e1006103f5565b6100c0565b61041f565b6001600160a01b03821661011a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806002600082825461012c919061040c565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806101ad57607f821691505b6020821081036101cd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561021f576000816000526020600020601f850160051c810160208610156101fc5750805b601f850160051c820191505b8181101561021b57828155600101610208565b5050505b505050565b81516001600160401b0381111561023d5761023d610183565b6102518161024b8454610199565b846101d3565b602080601f831160018114610286576000841561026e5750858301515b600019600386901b1c1916600185901b17855561021b565b600085815260208120601f198616915b828110156102b557888601518255948401946001909101908401610296565b50858210156102d35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561033457816000190482111561031a5761031a6102e3565b8085161561032757918102915b93841c93908002906102fe565b509250929050565b60008261034b575060016103d9565b81610358575060006103d9565b816001811461036e576002811461037857610394565b60019150506103d9565b60ff841115610389576103896102e3565b50506001821b6103d9565b5060208310610133831016604e8410600b84101617156103b7575081810a6103d9565b6103c183836102f9565b80600019048211156103d5576103d56102e3565b0290505b92915050565b60006103ee60ff84168361033c565b9392505050565b80820281158282048414176103d9576103d96102e3565b808201808211156103d9576103d96102e3565b6080516140f161043a600039600061077901526140f16000f3fe6080604052600436106101f95760003560e01c806370db69d61161010d578063a62f5b1b116100a0578063cb8106f41161006f578063cb8106f414610601578063dd62ed3e14610637578063e0d9750214610657578063f2fde38b1461066c578063fb700e5b1461068c57600080fd5b8063a62f5b1b1461055b578063a9059cbb1461057b578063c5b8f7721461059b578063c7218d5b146105e157600080fd5b806395d89b41116100dc57806395d89b41146104db57806395e4b21b146104f057806399f65c8f14610526578063a457c2d71461053b57600080fd5b806370db69d6146104685780638904970a1461047d5780638da5cb5b1461049d57806393bf7609146104bb57600080fd5b8063333a0072116101905780633ad2a37b1161015f5780633ad2a37b146103c85780634ed8cc80146103e8578063524773ce146104085780636b4ed21b1461041d57806370a082311461043257600080fd5b8063333a00721461034657806335ad0cea1461035b57806337b7e88c1461038857806339509351146103a857600080fd5b8063214013ca116101cc578063214013ca146102aa57806323b872dd146102bf5780632bd1a011146102df578063313ce5671461032a57600080fd5b806306fdde03146101fe578063095ea7b31461022957806316f0115b1461025957806318160ddd1461028b575b600080fd5b34801561020a57600080fd5b506102136106c2565b6040516102209190612aa2565b60405180910390f35b34801561023557600080fd5b50610249610244366004612aec565b610754565b6040519015158152602001610220565b34801561026557600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610220565b34801561029757600080fd5b506002545b604051908152602001610220565b6102bd6102b8366004612b16565b61076e565b005b3480156102cb57600080fd5b506102496102da366004612b38565b6107df565b3480156102eb57600080fd5b506102ff6102fa366004612b16565b610803565b604080518251815260208084015190820152918101516001600160a01b031690820152606001610220565b34801561033657600080fd5b5060405160098152602001610220565b34801561035257600080fd5b506102bd610874565b34801561036757600080fd5b5061037b610376366004612b74565b6108e2565b6040516102209190612b96565b34801561039457600080fd5b506102136103a3366004612be3565b61097d565b3480156103b457600080fd5b506102496103c3366004612aec565b610990565b3480156103d457600080fd5b506102496103e3366004612bfb565b6109b2565b3480156103f457600080fd5b50610213610403366004612be3565b610a8c565b34801561041457600080fd5b5061029c610aa1565b34801561042957600080fd5b5060105461029c565b34801561043e57600080fd5b5061029c61044d366004612b16565b6001600160a01b031660009081526020819052604090205490565b34801561047457600080fd5b5061029c610ad5565b34801561048957600080fd5b50610249610498366004612c47565b610bd0565b3480156104a957600080fd5b506013546001600160a01b0316610273565b3480156104c757600080fd5b506102496104d6366004612c47565b610c73565b3480156104e757600080fd5b50610213610d57565b3480156104fc57600080fd5b5061029c61050b366004612b16565b6001600160a01b03166000908152600e602052604090205490565b34801561053257600080fd5b50600f5461029c565b34801561054757600080fd5b50610249610556366004612aec565b610d66565b34801561056757600080fd5b50610213610576366004612be3565b610de1565b34801561058757600080fd5b50610249610596366004612aec565b610df6565b3480156105a757600080fd5b506102496105b6366004612aec565b6001600160a01b03919091166000908152600b60209081526040808320938352929052205460ff1690565b3480156105ed57600080fd5b506102ff6105fc366004612aec565b610e04565b34801561060d57600080fd5b5061027361061c366004612c8c565b6000908152600d60205260409020546001600160a01b031690565b34801561064357600080fd5b5061029c610652366004612ca5565b610e7e565b34801561066357600080fd5b5060115461029c565b34801561067857600080fd5b506102bd610687366004612b16565b610ea9565b34801561069857600080fd5b5061029c6106a7366004612b16565b6001600160a01b031660009081526008602052604090205490565b6060600380546106d190612cd8565b80601f01602080910402602001604051908101604052809291908181526020018280546106fd90612cd8565b801561074a5780601f1061071f5761010080835404028352916020019161074a565b820191906000526020600020905b81548152906001019060200180831161072d57829003601f168201915b5050505050905090565b600033610762818585610ef5565b60019150505b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107a357600080fd5b6005546001600160a01b0316156107b957600080fd5b600580546001600160a01b0319166001600160a01b039290921691909117905542600655565b6000336107ed85828561101a565b6107f8858585611094565b506001949350505050565b6108306040518060600160405280600081526020016000815260200160006001600160a01b031681525090565b506001600160a01b039081166000908152600c6020908152604091829020825160608101845281548152600182015492810192909252600201549092169082015290565b6013546001600160a01b031633146108a75760405162461bcd60e51b815260040161089e90612d0c565b60405180910390fd5b601380546001600160a01b03191690556040517f6e4ee811a17215345b89e3506064ff2d62f4feedff3566e9d09219cda7e8cadb90600090a1565b606060008267ffffffffffffffff8111156108ff576108ff612d30565b604051908082528060200260200182016040528015610928578160200160208202803683370190505b50905060005b838110156109755761094361061c8287612d5c565b82828151811061095557610955612d6f565b6001600160a01b039092166020928302919091019091015260010161092e565b509392505050565b606061076861098b836110d7565b61120e565b6000336107628185856109a38383610e7e565b6109ad9190612d5c565b610ef5565b6013546000906001600160a01b031633146109df5760405162461bcd60e51b815260040161089e90612d0c565b60005b6003811015610a815760005b6007811015610a7857838260038110610a0957610a09612d6f565b602002810190610a199190612d85565b8160078110610a2a57610a2a612d6f565b602002810190610a3a9190612da5565b60148460038110610a4d57610a4d612d6f565b600702018360078110610a6257610a62612d6f565b0191610a6f919083612e43565b506001016109ee565b506001016109e2565b50600190505b919050565b6060610768610a9a836110d7565b6001611389565b6000610aac60025490565b610ab86009600a612fe8565b610ac6906305f5e100612ff7565b610ad0919061300e565b905090565b6000610aeb6005546001600160a01b0316151590565b610b0957610afb6009600a612fe8565b610ad0906305f5e100612ff7565b6000620186a0600560065442610b1f919061300e565b610b2b6009600a612fe8565b610b39906305f5e100612ff7565b610b439190612ff7565b610b4d9190612ff7565b610b579190613037565b612710610b666009600a612fe8565b610b74906305f5e100612ff7565b610b7f906005612ff7565b610b899190613037565b610b939190612d5c565b9050610ba16009600a612fe8565b610baf906305f5e100612ff7565b811115610a8757610bc26009600a612fe8565b610768906305f5e100612ff7565b6013546000906001600160a01b03163314610bfd5760405162461bcd60e51b815260040161089e90612d0c565b60005b6005811015610c6957838160058110610c1b57610c1b612d6f565b602002810190610c2b9190612da5565b60298560068110610c3e57610c3e612d6f565b600502018360058110610c5357610c53612d6f565b0191610c60919083612e43565b50600101610c00565b5060019392505050565b6013546000906001600160a01b03163314610ca05760405162461bcd60e51b815260040161089e90612d0c565b60005b6005811015610c695760005b6006811015610d4e57848260058110610cca57610cca612d6f565b602002810190610cda919061304b565b8160068110610ceb57610ceb612d6f565b602002810190610cfb9190612da5565b60478660078110610d0e57610d0e612d6f565b601e02018460058110610d2357610d23612d6f565b600602018360068110610d3857610d38612d6f565b0191610d45919083612e43565b50600101610caf565b50600101610ca3565b6060600480546106d190612cd8565b60003381610d748286610e7e565b905083811015610dd45760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161089e565b6107f88286868403610ef5565b6060610768610def836110d7565b6000611389565b600033610762818585611094565b610e316040518060600160405280600081526020016000815260200160006001600160a01b031681525090565b506001600160a01b03918216600090815260096020908152604080832093835292815290829020825160608101845281548152600182015492810192909252600201549092169082015290565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6013546001600160a01b03163314610ed35760405162461bcd60e51b815260040161089e90612d0c565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610f575760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161089e565b6001600160a01b038216610fb85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161089e565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006110268484610e7e565b9050600019811461108e57818110156110815760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161089e565b61108e8484848403610ef5565b50505050565b6001600160a01b0382166110b1576110ac83826113cf565b505050565b306001600160a01b038416036110cc576110ac8383836114f9565b6110ac8383836114f9565b6110df6129e8565b6110e76129e8565b73747bb966ccfe07d96794960fc835f88538ea552861110c6060850160408601612b16565b6001600160a01b0316146101c0820190815260408051608081018252853581526000602080830191909152860135918101919091529051151560608201526111538161163c565b8252600761116082611705565b61116a9190613061565b60208301526111788161163c565b6080830152600761118882611705565b6111929190613061565b60a08301526111a08161163c565b60c083015260076111b082611705565b6111ba9190613061565b60e08301526111c88161163c565b6101008301526111d78161163c565b6101208301526111e68161163c565b61014083015260076111f782611705565b6112019190613061565b6101608301525092915050565b6060600061121f8360000151611779565b61122c8460200151611779565b6112398560800151611779565b6112468660a00151611779565b6112538760c00151611779565b6112608860e00151611779565b60405160200161127596959493929190613091565b604051602081830303815290604052905080611295846101000151611779565b6112a3856101200151611779565b6112b1866101400151611779565b6112bf876101600151611779565b6112cd886101800151611779565b6040516020016112e2969594939291906131a1565b604051602081830303815290604052905080836101c00151611321576040518060400160405280600581526020016466616c736560d81b81525061133f565b604051806040016040528060048152602001637472756560e01b8152505b60405160200161135092919061329d565b60405160208183030381529060405290508060405160200161137291906132e7565b604051602081830303815290604052915050919050565b606061139482611882565b61139c61194c565b6113a68585611971565b6040516020016113b89392919061331b565b604051602081830303815290604052905092915050565b6001600160a01b03821661142f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161089e565b6001600160a01b038216600090815260208190526040902054818110156114a35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161089e565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161100d565b6001600160a01b03831661155d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161089e565b6001600160a01b038316600090815260208190526040902054818110156115d55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161089e565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b60008061271061164b84611705565b6116559190613061565b905061166983600001518460600151611aca565b6060015161ffff168110156116815750600492915050565b61169383600001518460600151611aca565b6040015161ffff168110156116ab5750600392915050565b6116bd83600001518460600151611aca565b6020015161ffff168110156116d55750600292915050565b6116e783600001518460600151611aca565b5161ffff168110156116fc5750600192915050565b50600092915050565b600081606001516001836020018051809190611720906133f8565b9052845161172e9190612d5c565b611738919061300e565b604080850151905192151560f81b60208401526021830191909152604182015260610160408051601f19818403018152919052805160209091012092915050565b6060816000036117a05750506040805180820190915260018152600360fc1b602082015290565b8160005b81156117ca57806117b4816133f8565b91506117c39050600a83613037565b91506117a4565b60008167ffffffffffffffff8111156117e5576117e5612d30565b6040519080825280601f01601f19166020018201604052801561180f576020820181803683370190505b5090505b841561187a5761182460018361300e565b9150611831600a86613061565b61183c906030612d5c565b60f81b81838151811061185157611851612d6f565b60200101906001600160f81b031916908160001a905350611873600a86613037565b9450611813565b949350505050565b60608161189d57505060408051602081019091526000815290565b606060005b600a811015611945576000600182106118e2576118be82611779565b6040516020016118ce9190613411565b604051602081830303815290604052611901565b604051806040016040528060058152602001640303b6631360dc1b8152505b905082611917611912846001612d5c565b611779565b8260405160200161192a9392919061343a565b60408051601f198184030181529190529250506001016118a2565b5092915050565b606060405160200161195d906134ce565b604051602081830303815290604052905090565b81516060906000906014906007811061198c5761198c612d6f565b0160405160200161199d91906136ee565b6040516020818303038152906040529050600083156119f1576040518060400160405280601e81526020017f7472616e73666f726d3d277472616e736c617465282d3434302c203029270000815250611a02565b604051806020016040528060008152505b611a1f8515611a1357610370611a16565b60dc5b61ffff16611779565b611a2a601e87611c6b565b604051602001611a3c9392919061378b565b60405160208183030381529060405290506000611a598686611ca3565b611a638787611d94565b83604051602001611a7693929190613847565b60405160208183030381529060405290508281611a938888611f6a565b611a9d8989612835565b604051602001611ab0949392919061388a565b604051602081830303815290604052935050505092915050565b611ad2612a60565b6040805160808082018352609682526102586020808401919091526105dc83850152613a98606080850191909152845161014081018652610cce60c0820190815261020060e083015261010082018790526007610120830152815285518085018752610fb8815261035781850152608681880152601381840152818401528551808501875261134281526104e58185015260bf81880152601981840152818701528551808501875261165681526106118185015260fc81880152601f8184015281830152855180850187526118aa81526107548185015261016281880152602d8184015281850152855193840186526123288452611b589284019290925261138894830194909452610bb89382019390935260a0830152908315611c02578060055b602002015192505050610768565b815161ffff16851015611c1757806000611bf4565b602082015161ffff16851015611c2f57806001611bf4565b604082015161ffff16851015611c4757806002611bf4565b606082015161ffff16851015611c5f57806003611bf4565b60800151949350505050565b606081611c875750604080516020810190915260008152610768565b611c938360ff16611779565b6040516020016113b89190613924565b60606000611cb88315611a1357610370611a16565b604051602001611cc891906139f8565b60408051808303601f19018152919052845190915060009060299060058110611cf357611cf3612d6f565b01604051602001611d049190613a57565b60405160208183030381529060405290508315611d58578451819060299060058110611d3257611d32612d6f565b01604051602001611d44929190613ad0565b604051602081830303815290604052611d5a565b805b90508181611d69603c87611c6b565b604051602001611d7b93929190613b25565b6040516020818303038152906040529250505092915050565b60606000611da98315611a1357610370611a16565b604051602001611db991906139f8565b60408051808303601f1901815291815285015190915060009060339060058110611de557611de5612d6f565b606087015191019060149060078110611e0057611e00612d6f565b606088015191019060149060078110611e1b57611e1b612d6f565b01604051602001611e2e93929190613b8e565b60405160208183030381529060405290508315611ebd576040850151819060339060058110611e5f57611e5f612d6f565b606088015191019060149060078110611e7a57611e7a612d6f565b606089015191019060149060078110611e9557611e95612d6f565b01604051602001611ea99493929190613bfc565b604051602081830303815290604052611ebf565b805b604086015190915060009060389060058110611edd57611edd612d6f565b01604051602001611eee9190613c75565b60405160208183030381529060405290508415611f45576040860151819060389060058110611f1f57611f1f612d6f565b01604051602001611f31929190613cc9565b604051602081830303815290604052611f47565b805b9050828282611f57601989611c6b565b604051602001611ab09493929190613cfb565b60c082015160609060009060479060058110611f8857611f88612d6f565b6006020160000160146001600702018560e0015160078110611fac57611fac612d6f565b0161209160476000601e02018760c0015160058110611fcd57611fcd612d6f565b6040805160c0810190915291600691820201906000835b82821015612087578382018054611ffa90612cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461202690612cd8565b80156120735780601f1061204857610100808354040283529160200191612073565b820191906000526020600020905b81548152906001019060200180831161205657829003601f168201915b505050505081526020019060010190611fe4565b5050505086612937565b6040516020016120a393929190613d7b565b60408051808303601f1901815291905260c08501519091508190606590600581106120d0576120d0612d6f565b600602016000016121b160476001601e02018760c00151600581106120f7576120f7612d6f565b6040805160c0810190915291600691820201906000835b8282101561208757838201805461212490612cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461215090612cd8565b801561219d5780601f106121725761010080835404028352916020019161219d565b820191906000526020600020905b81548152906001019060200180831161218057829003601f168201915b50505050508152602001906001019061210e565b6040516020016121c393929190613e01565b60408051808303601f190181529190526080850151909150600090608390600581106121f1576121f1612d6f565b6006020160000160146001600702018660a001516007811061221557612215612d6f565b016122fa60476002601e020188608001516005811061223657612236612d6f565b6040805160c0810190915291600691820201906000835b828210156122f057838201805461226390612cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461228f90612cd8565b80156122dc5780601f106122b1576101008083540402835291602001916122dc565b820191906000526020600020905b8154815290600101906020018083116122bf57829003601f168201915b50505050508152602001906001019061224d565b5050505087612937565b60405160200161230c93929190613d7b565b60408051808303601f190181529190526080860151909150819060a1906005811061233957612339612d6f565b6006020160000161241a60476003601e020188608001516005811061236057612360612d6f565b6040805160c0810190915291600691820201906000835b828210156122f057838201805461238d90612cd8565b80601f01602080910402602001604051908101604052809291908181526020018280546123b990612cd8565b80156124065780601f106123db57610100808354040283529160200191612406565b820191906000526020600020905b8154815290600101906020018083116123e957829003601f168201915b505050505081526020019060010190612377565b60405160200161242c93929190613e01565b60408051808303601f1901815291905261018086015190915060009060bf906005811061245b5761245b612d6f565b600602016000016014600260070201876101a001516007811061248057612480612d6f565b0161256660476004601e0201896101800151600581106124a2576124a2612d6f565b6040805160c0810190915291600691820201906000835b8282101561255c5783820180546124cf90612cd8565b80601f01602080910402602001604051908101604052809291908181526020018280546124fb90612cd8565b80156125485780601f1061251d57610100808354040283529160200191612548565b820191906000526020600020905b81548152906001019060200180831161252b57829003601f168201915b5050505050815260200190600101906124b9565b5050505088612937565b60405160200161257893929190613d7b565b60408051808303601f19018152919052610180870151909150819060dd90600581106125a6576125a6612d6f565b6006020160000161268860476005601e0201896101800151600581106125ce576125ce612d6f565b6040805160c0810190915291600691820201906000835b8282101561255c5783820180546125fb90612cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461262790612cd8565b80156126745780601f1061264957610100808354040283529160200191612674565b820191906000526020600020905b81548152906001019060200180831161265757829003601f168201915b5050505050815260200190600101906125e5565b60405160200161269a93929190613e01565b60408051808303601f19018152919052610180870151909150819060fb90600581106126c8576126c8612d6f565b600602016000016127aa60476006601e0201896101800151600581106126f0576126f0612d6f565b6040805160c0810190915291600691820201906000835b8282101561255c57838201805461271d90612cd8565b80601f016020809104026020016040519081016040528092919081815260200182805461274990612cd8565b80156127965780601f1061276b57610100808354040283529160200191612796565b820191906000526020600020905b81548152906001019060200180831161277957829003601f168201915b505050505081526020019060010190612707565b6040516020016127bc93929190613e8c565b60408051808303601f190181528282527f7472616e73666f726d3d277472616e736c6174652829270000000000000000006020840152815160178185030181526037840190925292509061281a908290869086908690605701613f09565b60405160208183030381529060405294505050505092915050565b6060600061284a8315611a1357610370611a16565b60405160200161285a91906139f8565b60408051808303601f19018152918152850151909150600090603d906005811061288657612886612d6f565b6020870151910190601490600781106128a1576128a1612d6f565b016040516020016128b3929190613f93565b604051602081830303815290604052905083156129265760408501518190603d90600581106128e4576128e4612d6f565b6020880151910190601490600781106128ff576128ff612d6f565b0160405160200161291293929190613fe1565b604051602081830303815290604052612928565b805b90508181611d69600a87611c6b565b6060816129535750604080516020810190915260008152610768565b6060600060015b600a81116129de578261296c82611779565b87612977858561300e565b6006811061298757612987612d6f565b602002015160405160200161299e93929190614001565b6040516020818303038152906040529250600581106129c7576129c2826002612d5c565b6129ca565b60005b9150806129d6816133f8565b91505061295a565b5090949350505050565b604051806101e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581525090565b60405180608001604052806004906020820280368337509192915050565b60005b83811015612a99578181015183820152602001612a81565b50506000910152565b6020815260008251806020840152612ac1816040850160208701612a7e565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a8757600080fd5b60008060408385031215612aff57600080fd5b612b0883612ad5565b946020939093013593505050565b600060208284031215612b2857600080fd5b612b3182612ad5565b9392505050565b600080600060608486031215612b4d57600080fd5b612b5684612ad5565b9250612b6460208501612ad5565b9150604084013590509250925092565b60008060408385031215612b8757600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015612bd75783516001600160a01b031683529284019291840191600101612bb2565b50909695505050505050565b600060608284031215612bf557600080fd5b50919050565b600060208284031215612c0d57600080fd5b813567ffffffffffffffff811115612c2457600080fd5b820160608101841015612b3157600080fd5b8060a0810183101561076857600080fd5b60008060408385031215612c5a57600080fd5b823567ffffffffffffffff811115612c7157600080fd5b612c7d85828601612c36565b95602094909401359450505050565b600060208284031215612c9e57600080fd5b5035919050565b60008060408385031215612cb857600080fd5b612cc183612ad5565b9150612ccf60208401612ad5565b90509250929050565b600181811c90821680612cec57607f821691505b602082108103612bf557634e487b7160e01b600052602260045260246000fd5b6020808252600a908201526937b7363c9037bbb732b960b11b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561076857610768612d46565b634e487b7160e01b600052603260045260246000fd5b6000823560de19833603018112612d9b57600080fd5b9190910192915050565b6000808335601e19843603018112612dbc57600080fd5b83018035915067ffffffffffffffff821115612dd757600080fd5b602001915036819003821315612dec57600080fd5b9250929050565b601f8211156110ac576000816000526020600020601f850160051c81016020861015612e1c5750805b601f850160051c820191505b81811015612e3b57828155600101612e28565b505050505050565b67ffffffffffffffff831115612e5b57612e5b612d30565b612e6f83612e698354612cd8565b83612df3565b6000601f841160018114612ea35760008515612e8b5750838201355b600019600387901b1c1916600186901b178355612efd565b600083815260209020601f19861690835b82811015612ed45786850135825560209485019460019092019101612eb4565b5086821015612ef15760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b600181815b80851115612f3f578160001904821115612f2557612f25612d46565b80851615612f3257918102915b93841c9390800290612f09565b509250929050565b600082612f5657506001610768565b81612f6357506000610768565b8160018114612f795760028114612f8357612f9f565b6001915050610768565b60ff841115612f9457612f94612d46565b50506001821b610768565b5060208310610133831016604e8410600b8410161715612fc2575081810a610768565b612fcc8383612f04565b8060001904821115612fe057612fe0612d46565b029392505050565b6000612b3160ff841683612f47565b808202811582820484141761076857610768612d46565b8181038181111561076857610768612d46565b634e487b7160e01b600052601260045260246000fd5b60008261304657613046613021565b500490565b6000823560be19833603018112612d9b57600080fd5b60008261307057613070613021565b500690565b60008151613087818560208601612a7e565b9290920192915050565b6601139b5bc911d160cd1b815286516000906130b4816007850160208c01612a7e565b6b01139b5bca1b7b637b9111d160a51b60079184019182015287516130e0816013840160208c01612a7e565b6901610113137b23c911d160b51b60139290910191820152865161310b81601d840160208b01612a7e565b6e01610113137b23ca1b7b637b9111d1608d1b601d9290910191820152855161313b81602c840160208a01612a7e565b6901610113432b0b2111d160b51b602c92909101918201528451613166816036840160208901612a7e565b61319361318d6036838501016e01610113432b0b221b7b637b9111d1608d1b8152600f0190565b86613075565b9a9950505050505050505050565b600087516131b3818460208c01612a7e565b69016101132bcb2b9911d160b51b90830190815287516131da81600a840160208c01612a7e565b6a016101136b7baba34111d160ad1b600a92909101918201528651613206816015840160208b01612a7e565b6e016101130b1b1b2b9b9b7b93c911d1608d1b601592909101918201528551613236816024840160208a01612a7e565b73016101130b1b1b2b9b9b7b93ca1b7b637b9111d160651b60249290910191820152845161326b816038840160208901612a7e565b6901610113330b1b2911d160b51b603892909101918201526132906042820185613075565b9998505050505050505050565b600083516132af818460208801612a7e565b6e016101134b9a9b832b1b4b0b6111d1608d1b90830190815283516132db81600f840160208801612a7e565b01600f01949350505050565b607b60f81b815260008251613303816001850160208701612a7e565b607d60f81b6001939091019283015250600201919050565b7f3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323081527f30302f737667272066696c6c3d276e6f6e65272076696577426f783d273020306020820152691019191810191918139f60b11b6040820152641e3232b31f60d91b604a8201526000845161339a81604f850160208901612a7e565b8451908301906133b181604f840160208901612a7e565b651e17b232b31f60d11b604f929091019182015283516133d8816055840160208801612a7e565b651e17b9bb339f60d11b60559290910191820152605b0195945050505050565b60006001820161340a5761340a612d46565b5060010190565b603360f91b81526000825161342d816001850160208701612a7e565b9190910160010192915050565b6000845161344c818460208901612a7e565b6d1e30b734b6b0ba329034b21e93b360911b908301908152845161347781600e840160208901612a7e565b682720626567696e3d2760b81b600e929091019182015283516134a1816017840160208801612a7e565b721732b7321390323ab91e9398981836b993979f60691b60179290910191820152602a0195945050505050565b711e3334b63a32b91034b21e93b430b4b9139f60711b81527f3c666554757262756c656e636520736565643d2731302720747970653d27667260128201527f616374616c4e6f6973652720626173654672657175656e63793d27313227206e60328201527f756d4f6374617665733d27312720726573756c743d2774757262756c656e63656052820152631390179f60e11b60728201527f3c6665436f6d706f6e656e745472616e736665722077696474683d273130302560768201527f27206865696768743d27313030252720696e3d2774757262756c656e6365272060968201527f726573756c743d27636f6d706f6e656e745472616e73666572273e3c6665467560b68201527f6e634120747970653d277461626c6527207461626c6556616c7565733d27302060d68201527f302e3335272f3e3c2f6665436f6d706f6e656e745472616e736665723e00000060f68201527f3c6665426c656e6420696e3d27536f757263654772617068696327206d6f6465610113820152671e93b43ab293979f60c11b610133820152681e17b334b63a32b91f60b91b61013b82015260006101448201610768565b6000815461368881612cd8565b600182811680156136a057600181146136b5576136e4565b60ff19841687528215158302870194506136e4565b8560005260208060002060005b858110156136db5781548a8201529084019082016136c2565b50505082870194505b5050505092915050565b7f3c726563742077696474683d2732323027206865696768743d2732323027206681526c34b6361e93bbb434ba3293979f60991b60208201527f3c72656374206f7061636974793d27302e35272077696474683d273232302720602d820152726865696768743d27323230272066696c6c3d2760681b604d8201526000613778606083018461367b565b6213979f60e91b81526003019392505050565b7f3c673e3c726563742066696c7465723d2775726c2823677261696e73292720008152600084516137c381601f850160208901612a7e565b672077696474683d2760c01b601f9184019182015284516137eb816027840160208901612a7e565b7f27206865696768743d2732323027206f7061636974793d27302e38272f3e0000602792909101918201528351613829816045840160208801612a7e565b631e17b39f60e11b6045929091019182015260490195945050505050565b60008451613859818460208901612a7e565b84519083019061386d818360208901612a7e565b8451910190613880818360208801612a7e565b0195945050505050565b7f3c672066696c7465723d2775726c2823677261696e7329273e000000000000008152600085516138c2816019850160208a01612a7e565b8551908301906138d9816019840160208a01612a7e565b85519101906138ef816019840160208901612a7e565b8451910190613905816019840160208801612a7e565b631e17b39f60e11b60199290910191820152601d019695505050505050565b7f3c616e696d6174655472616e73666f726d20626567696e3d2730272066696c6c81527f3d27667265657a6527206174747269627574654e616d653d277472616e73666f60208201527f726d2720747970653d277472616e736c61746527206475723d270000000000006040820152600082516139a881605a850160208701612a7e565b7f73272066726f6d3d273020302720746f3d273434302030272072657065617443605a9390910192830152507237bab73a1e93b4b73232b334b734ba3293979f60691b607a820152608d01919050565b7f3c72656374206f7061636974793d2730272077696474683d2700000000000000815260008251613a30816019850160208701612a7e565b6f13903432b4b3b43a1e9399191813979f60811b6019939091019283015250602901919050565b683c7061746820643d2760b81b81526000613a75600983018461367b565b7013903334b6361e93bbb434ba329390179f60791b81526011019392505050565b7f3c70617468207472616e73666f726d3d277472616e736c617465282d3434302c8152672030292720643d2760c01b602082015260280190565b60008351613ae2818460208801612a7e565b613af6613af0828501613a96565b8561367b565b7f272066696c6c3d27776869746527207374726f6b653d277768697465272f3e008152601f0195945050505050565b621e339f60e91b815260008451613b43816003850160208901612a7e565b845190830190613b5a816003840160208901612a7e565b8451910190613b70816003840160208801612a7e565b631e17b39f60e11b6003929091019182015260070195945050505050565b683c7061746820643d2760b81b81526000613bac600983018661367b565b6927207374726f6b653d2760b01b8152613bc9600a82018661367b565b905067272066696c6c3d2760c01b8152613be6600882018561367b565b6213979f60e91b81526003019695505050505050565b60008551613c0e818460208a01612a7e565b613c22613c1c828501613a96565b8761367b565b90506927207374726f6b653d2760b01b8152613c41600a82018661367b565b905067272066696c6c3d2760c01b8152613c5e600882018561367b565b6213979f60e91b8152600301979650505050505050565b683c7061746820643d2760b81b81526000612b31613c96600984018561367b565b7f272066696c6c3d272333383338333827206f7061636974793d27302e3827202f8152601f60f91b602082015260210190565b60008351613cdb818460208801612a7e565b613cf2613c96613cec838601613a96565b8661367b565b95945050505050565b621e339f60e91b815260008551613d19816003850160208a01612a7e565b855190830190613d30816003840160208a01612a7e565b8551910190613d46816003840160208901612a7e565b8451910190613d5c816003840160208801612a7e565b631e17b39f60e11b600392909101918201526007019695505050505050565b683c7061746820643d2760b81b81526000613d99600983018661367b565b67272066696c6c3d2760c01b8152613db4600882018661367b565b905070139039ba3937b5b29e93b13630b1b5939f60791b81528351613de0816011840160208801612a7e565b661e17b830ba341f60c91b6011929091019182015260180195945050505050565b60008451613e13818460208901612a7e565b683c7061746820643d2760b81b908301908152613e33600982018661367b565b90507f272066696c6c3d272333383338333827206f7061636974793d27302e38273e0081528351613e6b81601f840160208801612a7e565b661e17b830ba341f60c91b601f929091019182015260260195945050505050565b60008451613e9e818460208901612a7e565b683c7061746820643d2760b81b908301908152613ebe600982018661367b565b90506e13903334b6361e93b13630b1b5939f60891b81528351613ee881600f840160208801612a7e565b661e17b830ba341f60c91b600f929091019182015260160195945050505050565b6201e33960ed1b815260008551613f27816003850160208a01612a7e565b601f60f91b6003918401918201528551613f48816004840160208a01612a7e565b8551910190613f5e816004840160208901612a7e565b8451910190613f74816004840160208801612a7e565b631e17b39f60e11b600492909101918201526008019695505050505050565b683c7061746820643d2760b81b81526000613fb1600983018561367b565b67272066696c6c3d2760c01b8152613fcc600882018561367b565b6213979f60e91b815260030195945050505050565b60008451613ff3818460208901612a7e565b613bc9613cec828501613a96565b60008451614013818460208901612a7e565b701e30b734b6b0ba32903132b3b4b71e93b360791b9083019081528451614041816011840160208901612a7e565b7f2e656e64272066696c6c3d27667265657a6527206174747269627574654e616d6011929091019182015275653d276427206475723d273330306d732720746f3d2760501b6031820152835161409e816047840160208801612a7e565b6213979f60e91b60479290910191820152604a019594505050505056fea2646970667358221220655f51c2f340335ca943f8fbd7e2a201480fd44482a056b968d9f94fcc5a4ff764736f6c63430008190033