[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "URI_SETTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "initilize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isInitilize", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "string", "name": "tokenUri", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "string[]", "name": "tokenUris", "type": "string[]" } ], "name": "mintBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newuri", "type": "string" } ], "name": "setURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "supplyOfID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "URI", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b506040805160208101909152600081526200002c8162000033565b50620001b6565b6005620000418282620000ea565b5050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007057607f821691505b6020821081036200009157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000e557600081815260208120601f850160051c81016020861015620000c05750805b601f850160051c820191505b81811015620000e157828155600101620000cc565b5050505b505050565b81516001600160401b0381111562000106576200010662000045565b6200011e816200011784546200005b565b8462000097565b602080601f8311600181146200015657600084156200013d5750858301515b600019600386901b1c1916600185901b178555620000e1565b600085815260208120601f198616915b82811015620001875788860151825594840194600190910190840162000166565b5085821015620001a65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61248f80620001c66000396000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80637f345710116100de578063c192a8c011610097578063d547741f11610071578063d547741f1461038d578063e985e9c5146103a0578063eefffef6146103dc578063f242432a146103fc57600080fd5b8063c192a8c014610365578063c87b56dd14610205578063d53913931461037857600080fd5b80637f345710146102f557806391d148541461031c57806395d89b411461032f578063a217fddf14610337578063a22cb4651461033f578063a55784ef1461035257600080fd5b80632eb2c2d61161014b57806336568abe1161012557806336568abe1461026e5780634e1273f414610281578063510b5158146102a15780637d84b863146102e257600080fd5b80632eb2c2d61461023b5780632f2ff15d1461024e5780632f4670f31461026157600080fd5b8062fdd58e1461019257806301ffc9a7146101b857806302fe5305146101db57806306fdde03146101f05780630e89341c14610205578063248a9ca314610218575b600080fd5b6101a56101a036600461186c565b61040f565b6040519081526020015b60405180910390f35b6101cb6101c63660046118af565b6104a9565b60405190151581526020016101af565b6101ee6101e9366004611981565b6104b4565b005b6101f86104ec565b6040516101af9190611a0d565b6101f8610213366004611a20565b61057a565b6101a5610226366004611a20565b60009081526006602052604090206001015490565b6101ee610249366004611acd565b61061c565b6101ee61025c366004611b76565b6106b3565b6009546101cb9060ff1681565b6101ee61027c366004611b76565b6106de565b61029461028f366004611ba2565b610758565b6040516101af9190611ca7565b6102ca6102af366004611a20565b6002602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101af565b6101ee6102f0366004611cba565b610881565b6101a57f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c81565b6101cb61032a366004611b76565b6108af565b6101f86108da565b6101a5600081565b6101ee61034d366004611d1e565b6108e7565b6101ee610360366004611d5a565b6109bd565b6101ee610373366004611e6f565b6109e2565b6101a560008051602061243a83398151915281565b6101ee61039b366004611b76565b610a8e565b6101cb6103ae366004611ee2565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6101a56103ea366004611a20565b60036020526000908152604090205481565b6101ee61040a366004611cba565b610ab4565b60006001600160a01b0383166104805760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006104a382610b3b565b7f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c6104df8133610b60565b6104e882610bc4565b5050565b600780546104f990611f0c565b80601f016020809104026020016040519081016040528092919081815260200182805461052590611f0c565b80156105725780601f1061054757610100808354040283529160200191610572565b820191906000526020600020905b81548152906001019060200180831161055557829003601f168201915b505050505081565b600081815260016020526040902080546060919061059790611f0c565b80601f01602080910402602001604051908101604052809291908181526020018280546105c390611f0c565b80156106105780601f106105e557610100808354040283529160200191610610565b820191906000526020600020905b8154815290600101906020018083116105f357829003601f168201915b50505050509050919050565b6001600160a01b038516331480610638575061063885336103ae565b61069f5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610477565b6106ac8585858585610bd0565b5050505050565b6000828152600660205260409020600101546106cf8133610b60565b6106d98383610d64565b505050565b6001600160a01b038116331461074e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610477565b6104e88282610dea565b606081518351146107bd5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610477565b600083516001600160401b038111156107d8576107d86118cc565b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b84518110156108795761084c85828151811061082557610825611f46565b602002602001015185838151811061083f5761083f611f46565b602002602001015161040f565b82828151811061085e5761085e611f46565b602090810291909101015261087281611f72565b9050610807565b509392505050565b60008051602061243a83398151915261089a8133610b60565b6108a78686868686610e51565b505050505050565b60009182526006602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600880546104f990611f0c565b6001600160a01b03821633036109515760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610477565b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60008051602061243a8339815191526109d68133610b60565b6106ac85858585611022565b60095460ff1615610a1a5760405162461bcd60e51b8152602060048201526002602482015261414960f01b6044820152606401610477565b6009805460ff191660011790556007610a338482611fd1565b506008610a408382611fd1565b50610a4c600082610d64565b610a767f7804d923f43a17d325d77e781528e0793b2edd9890ab45fc64efd7b4b427744c82610d64565b6106d960008051602061243a83398151915282610d64565b600082815260066020526040902060010154610aaa8133610b60565b6106d98383610dea565b6001600160a01b038516331480610ad05750610ad085336103ae565b610b2e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610477565b6106ac85858585856112d7565b60006001600160e01b03198216637965db0b60e01b14806104a357506104a3826113fd565b610b6a82826108af565b6104e857610b82816001600160a01b0316601461144d565b610b8d83602061144d565b604051602001610b9e929190612090565b60408051601f198184030181529082905262461bcd60e51b825261047791600401611a0d565b60056104e88282611fd1565b8151835114610bf15760405162461bcd60e51b815260040161047790612105565b6001600160a01b038416610c175760405162461bcd60e51b81526004016104779061214d565b3360005b8451811015610cfe576000858281518110610c3857610c38611f46565b602002602001015190506000858381518110610c5657610c56611f46565b602090810291909101810151600084815280835260408082206001600160a01b038e168352909352919091205490915081811015610ca65760405162461bcd60e51b815260040161047790612192565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290610ce39084906121dc565b9250508190555050505080610cf790611f72565b9050610c1b565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610d4e9291906121ef565b60405180910390a46108a78187878787876115ef565b610d6e82826108af565b6104e85760008281526006602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610da63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610df482826108af565b156104e85760008281526006602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6001600160a01b038416610e775760405162461bcd60e51b81526004016104779061221d565b60008381526002602052604090205433906001600160a01b0316610ebd57600084815260026020526040902080546001600160a01b0319166001600160a01b0388161790555b6000848152600260205260409020546001600160a01b03878116911614610f185760405162461bcd60e51b815260206004820152600f60248201526e34b73b30b634b21031b932b0ba37b960891b6044820152606401610477565b610f4781600087610f288861174a565b610f318861174a565b5050604080516020810190915260009052505050565b6000848152600160205260409020610f5f8382611fd1565b506000848152602081815260408083206001600160a01b038916845290915281208054859290610f909084906121dc565b909155505060008481526003602052604081208054859290610fb39084906121dc565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46108a781600087878760405180602001604052806000815250611795565b6001600160a01b0384166110485760405162461bcd60e51b81526004016104779061221d565b81518351146110695760405162461bcd60e51b815260040161047790612105565b604080516020810190915260009081905233905b84518110156112605760006001600160a01b0316600260008784815181106110a7576110a7611f46565b6020908102919091018101518252810191909152604001600020546001600160a01b0316036111225781600260008784815181106110e7576110e7611f46565b6020026020010151815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b82818151811061113457611134611f46565b60200260200101516001600087848151811061115257611152611f46565b6020026020010151815260200190815260200160002090816111749190611fd1565b5083818151811061118757611187611f46565b60200260200101516000808784815181106111a4576111a4611f46565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111ec91906121dc565b9250508190555083818151811061120557611205611f46565b60200260200101516003600087848151811061122357611223611f46565b60200260200101518152602001908152602001600020600082825461124891906121dc565b9091555081905061125881611f72565b91505061107d565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516112b19291906121ef565b60405180910390a46106ac816000878787604051806020016040528060008152506115ef565b6001600160a01b0384166112fd5760405162461bcd60e51b81526004016104779061214d565b3361131681878761130d8861174a565b6106ac8861174a565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156113575760405162461bcd60e51b815260040161047790612192565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906113949084906121dc565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46113f4828888888888611795565b50505050505050565b60006001600160e01b03198216636cdb3d1360e11b148061142e57506001600160e01b031982166303a24d0760e21b145b806104a357506301ffc9a760e01b6001600160e01b03198316146104a3565b6060600061145c83600261225e565b6114679060026121dc565b6001600160401b0381111561147e5761147e6118cc565b6040519080825280601f01601f1916602001820160405280156114a8576020820181803683370190505b509050600360fc1b816000815181106114c3576114c3611f46565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106114f2576114f2611f46565b60200101906001600160f81b031916908160001a905350600061151684600261225e565b6115219060016121dc565b90505b6001811115611599576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061155557611555611f46565b1a60f81b82828151811061156b5761156b611f46565b60200101906001600160f81b031916908160001a90535060049490941c9361159281612275565b9050611524565b5083156115e85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610477565b9392505050565b6001600160a01b0384163b156108a75760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611633908990899088908890889060040161228c565b6020604051808303816000875af192505050801561166e575060408051601f3d908101601f1916820190925261166b918101906122ea565b60015b61171a5761167a612307565b806308c379a0036116b3575061168e612323565b8061169957506116b5565b8060405162461bcd60e51b81526004016104779190611a0d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610477565b6001600160e01b0319811663bc197c8160e01b146113f45760405162461bcd60e51b8152600401610477906123ac565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061178457611784611f46565b602090810291909101015292915050565b6001600160a01b0384163b156108a75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906117d990899089908890889088906004016123f4565b6020604051808303816000875af1925050508015611814575060408051601f3d908101601f19168201909252611811918101906122ea565b60015b6118205761167a612307565b6001600160e01b0319811663f23a6e6160e01b146113f45760405162461bcd60e51b8152600401610477906123ac565b80356001600160a01b038116811461186757600080fd5b919050565b6000806040838503121561187f57600080fd5b61188883611850565b946020939093013593505050565b6001600160e01b0319811681146118ac57600080fd5b50565b6000602082840312156118c157600080fd5b81356115e881611896565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715611907576119076118cc565b6040525050565b600082601f83011261191f57600080fd5b81356001600160401b03811115611938576119386118cc565b60405161194f601f8301601f1916602001826118e2565b81815284602083860101111561196457600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561199357600080fd5b81356001600160401b038111156119a957600080fd5b6119b58482850161190e565b949350505050565b60005b838110156119d85781810151838201526020016119c0565b50506000910152565b600081518084526119f98160208601602086016119bd565b601f01601f19169290920160200192915050565b6020815260006115e860208301846119e1565b600060208284031215611a3257600080fd5b5035919050565b60006001600160401b03821115611a5257611a526118cc565b5060051b60200190565b600082601f830112611a6d57600080fd5b81356020611a7a82611a39565b604051611a8782826118e2565b83815260059390931b8501820192828101915086841115611aa757600080fd5b8286015b84811015611ac25780358352918301918301611aab565b509695505050505050565b600080600080600060a08688031215611ae557600080fd5b611aee86611850565b9450611afc60208701611850565b935060408601356001600160401b0380821115611b1857600080fd5b611b2489838a01611a5c565b94506060880135915080821115611b3a57600080fd5b611b4689838a01611a5c565b93506080880135915080821115611b5c57600080fd5b50611b698882890161190e565b9150509295509295909350565b60008060408385031215611b8957600080fd5b82359150611b9960208401611850565b90509250929050565b60008060408385031215611bb557600080fd5b82356001600160401b0380821115611bcc57600080fd5b818501915085601f830112611be057600080fd5b81356020611bed82611a39565b604051611bfa82826118e2565b83815260059390931b8501820192828101915089841115611c1a57600080fd5b948201945b83861015611c3f57611c3086611850565b82529482019490820190611c1f565b96505086013592505080821115611c5557600080fd5b50611c6285828601611a5c565b9150509250929050565b600081518084526020808501945080840160005b83811015611c9c57815187529582019590820190600101611c80565b509495945050505050565b6020815260006115e86020830184611c6c565b600080600080600060a08688031215611cd257600080fd5b611cdb86611850565b9450611ce960208701611850565b9350604086013592506060860135915060808601356001600160401b03811115611d1257600080fd5b611b698882890161190e565b60008060408385031215611d3157600080fd5b611d3a83611850565b915060208301358015158114611d4f57600080fd5b809150509250929050565b60008060008060808587031215611d7057600080fd5b611d7985611850565b93506020808601356001600160401b0380821115611d9657600080fd5b611da289838a01611a5c565b95506040880135915080821115611db857600080fd5b611dc489838a01611a5c565b94506060880135915080821115611dda57600080fd5b818801915088601f830112611dee57600080fd5b8135611df981611a39565b604051611e0682826118e2565b82815260059290921b840185019185810191508b831115611e2657600080fd5b8585015b83811015611e5e57803585811115611e425760008081fd5b611e508e89838a010161190e565b845250918601918601611e2a565b50989b979a50959850505050505050565b600080600060608486031215611e8457600080fd5b83356001600160401b0380821115611e9b57600080fd5b611ea78783880161190e565b94506020860135915080821115611ebd57600080fd5b50611eca8682870161190e565b925050611ed960408501611850565b90509250925092565b60008060408385031215611ef557600080fd5b611efe83611850565b9150611b9960208401611850565b600181811c90821680611f2057607f821691505b602082108103611f4057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f8457611f84611f5c565b5060010190565b601f8211156106d957600081815260208120601f850160051c81016020861015611fb25750805b601f850160051c820191505b818110156108a757828155600101611fbe565b81516001600160401b03811115611fea57611fea6118cc565b611ffe81611ff88454611f0c565b84611f8b565b602080601f831160018114612033576000841561201b5750858301515b600019600386901b1c1916600185901b1785556108a7565b600085815260208120601f198616915b8281101561206257888601518255948401946001909101908401612043565b50858210156120805787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516120c88160178501602088016119bd565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516120f98160288401602088016119bd565b01602801949350505050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156104a3576104a3611f5c565b6040815260006122026040830185611c6c565b82810360208401526122148185611c6c565b95945050505050565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b80820281158282048414176104a3576104a3611f5c565b60008161228457612284611f5c565b506000190190565b6001600160a01b0386811682528516602082015260a0604082018190526000906122b890830186611c6c565b82810360608401526122ca8186611c6c565b905082810360808401526122de81856119e1565b98975050505050505050565b6000602082840312156122fc57600080fd5b81516115e881611896565b600060033d11156123205760046000803e5060005160e01c5b90565b600060443d10156123315790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561236057505050505090565b82850191508151818111156123785750505050505090565b843d87010160208285010111156123925750505050505090565b6123a1602082860101876118e2565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061242e908301846119e1565b97965050505050505056fe9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a264697066735822122011c66bc7fc64773e80b4907c53714cab664799a45d3e62c60931a45a184df19164736f6c63430008130033