[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newBurner", "type": "address" } ], "name": "BurnerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldBurner", "type": "address" } ], "name": "BurnerRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newMinter", "type": "address" } ], "name": "MinterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldMinter", "type": "address" } ], "name": "MinterRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "CAP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newBurner", "type": "address" } ], "name": "addBurner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newMinter", "type": "address" } ], "name": "addMinter", "outputs": [], "stateMutability": "nonpayable", "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": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "burnDegis", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "burnerList", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getMinterList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "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": "", "type": "address" } ], "name": "isBurner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mintDegis", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "minterList", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_oldBurner", "type": "address" } ], "name": "removeBurner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_oldMinter", "type": "address" } ], "name": "removeMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_contracts", "type": "address[]" } ], "name": "setAllowedRecipients", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_contracts", "type": "address[]" } ], "name": "setAllowedSenders", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "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" } ]
6101606040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610140523480156200003757600080fd5b506040518060400160405280600a8152602001692232b3b4b9aa37b5b2b760b11b8152506040518060400160405280600381526020016244454760e81b8152508180604051806040016040528060018152602001603160f81b81525084848160039080519060200190620000ad92919062000279565b508051620000c390600490602084019062000279565b5050825160208085019190912083519184019190912060e08290526101008190524660a0529091507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001198184846200014a565b6080523060c052610120525062000137935033925050620001869050565b6200014233620001d8565b5050620003f2565b600083838346306040516020016200016795949392919062000345565b6040516020818303038152906040528051906020012090509392505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600a602052604090819020805460ff1916909217909155517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f6906200026e9083906200039b565b60405180910390a150565b8280546200028790620003c1565b90600052602060002090601f016020900481019282620002ab5760008555620002f6565b82601f10620002c657805160ff1916838001178555620002f6565b82800160010185558215620002f6579182015b82811115620002f6578251825591602001919060010190620002d9565b506200030492915062000308565b5090565b5b8082111562000304576000815560010162000309565b805b82525050565b60006001600160a01b0382165b92915050565b620003218162000327565b60a081016200035582886200031f565b6200036460208301876200031f565b6200037360408301866200031f565b6200038260608301856200031f565b6200039160808301846200033a565b9695505050505050565b602081016200033482846200033a565b634e487b7160e01b600052602260045260246000fd5b600281046001821680620003d657607f821691505b60208210811415620003ec57620003ec620003ab565b50919050565b60805160a05160c05160e0516101005161012051610140516127bc6200044d6000396000610d80015260006112280152600061126a01526000611249015260006111ad015260006111d70152600061120101526127bc6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063abd8e23d116100a2578063de0d611711610071578063de0d611714610445578063ec81b4831461045a578063f2fde38b1461046c578063f44637ba1461047f57600080fd5b8063abd8e23d146103d3578063b4767398146103e6578063d505accf146103f9578063dd62ed3e1461040c57600080fd5b8063983b2d56116100de578063983b2d5614610377578063a457c2d71461038a578063a9059cbb1461039d578063aa271e1a146103b057600080fd5b8063715018a6146103435780637ecebe001461034b5780638da5cb5b1461035e57806395d89b411461036f57600080fd5b80633092afd5116101875780634334614a116101565780634334614a146102d1578063497a8167146102f45780636858da9a1461030757806370a082311461031a57600080fd5b80633092afd514610294578063313ce567146102a75780633644e515146102b657806339509351146102be57600080fd5b80630dcce3d7116101c35780630dcce3d71461023d57806318160ddd1461025057806323b872dd14610261578063279ad7ab1461027457600080fd5b806302846858146101ea57806306fdde03146101ff578063095ea7b31461021d575b600080fd5b6101fd6101f83660046119db565b610492565b005b610207610697565b6040516102149190611a5a565b60405180910390f35b61023061022b366004611a7c565b610729565b6040516102149190611ac3565b6101fd61024b366004611bd6565b610740565b6002545b6040516102149190611c17565b61023061026f366004611c25565b6107e1565b610287610282366004611c75565b610846565b6040516102149190611c9f565b6101fd6102a23660046119db565b610870565b60126040516102149190611cb6565b610254610a60565b6102306102cc366004611a7c565b610a6f565b6102306102df3660046119db565b600c6020526000908152604090205460ff1681565b6101fd610302366004611bd6565b610aab565b6101fd610315366004611a7c565b610b47565b6102546103283660046119db565b6001600160a01b031660009081526020819052604090205490565b6101fd610b55565b6102546103593660046119db565b610b9a565b6006546001600160a01b0316610287565b610207610bb8565b6101fd6103853660046119db565b610bc7565b610230610398366004611a7c565b610c45565b6102306103ab366004611a7c565b610ca0565b6102306103be3660046119db565b600a6020526000908152604090205460ff1681565b6102876103e1366004611c75565b610d03565b6101fd6103f4366004611a7c565b610d13565b6101fd610407366004611cd8565b610d5c565b61025461041a366004611d77565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61044d610e3e565b6040516102149190611e08565b6102546a52b7d2dcc80cd2e400000081565b6101fd61047a3660046119db565b610f0a565b6101fd61048d3660046119db565b610f72565b336104a56006546001600160a01b031690565b6001600160a01b0316146104d45760405162461bcd60e51b81526004016104cb90611e49565b60405180910390fd5b6001600160a01b0381166000908152600a602052604090205460ff1615156001146105115760405162461bcd60e51b81526004016104cb90611e8b565b600b5460005b8181101561063a57826001600160a01b0316600b828154811061053c5761053c611e9b565b6000918252602090912001546001600160a01b0316141561062857805b610564600184611ec7565b8110156105ef57600b610578826001611ede565b8154811061058857610588611e9b565b600091825260209091200154600b80546001600160a01b0390921691839081106105b4576105b4611e9b565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055806105e781611ef6565b915050610559565b50600b80548061060157610601611f11565b600082815260209020810160001990810180546001600160a01b031916905501905561063a565b8061063281611ef6565b915050610517565b506001600160a01b0382166000908152600c602052604090819020805460ff19169055517f90eabbc0c667db2a5029ed6bc0f5fe9f356d11684a4ca9fcfaec0e53f12b9c8e9061068b908490611c9f565b60405180910390a15050565b6060600380546106a690611f3d565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290611f3d565b801561071f5780601f106106f45761010080835404028352916020019161071f565b820191906000526020600020905b81548152906001019060200180831161070257829003601f168201915b5050505050905090565b6000610736338484611083565b5060015b92915050565b33731be1a151ba3d24f594ee971dc9b843f23b5ba80e146107735760405162461bcd60e51b81526004016104cb90611f7b565b805160005b818110156107dc5760016008600085848151811061079857610798611e9b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107d481611ef6565b915050610778565b505050565b3360009081526008602052604081205460ff168061081757506001600160a01b03831660009081526007602052604090205460ff165b6108335760405162461bcd60e51b81526004016104cb90611fd8565b61083e848484611137565b949350505050565b6009818154811061085657600080fd5b6000918252602090912001546001600160a01b0316905081565b336108836006546001600160a01b031690565b6001600160a01b0316146108a95760405162461bcd60e51b81526004016104cb90611e49565b6001600160a01b0381166000908152600a602052604090205460ff1615156001146108e65760405162461bcd60e51b81526004016104cb9061201a565b60095460005b81811015610a0f57826001600160a01b03166009828154811061091157610911611e9b565b6000918252602090912001546001600160a01b031614156109fd57805b610939600184611ec7565b8110156109c457600961094d826001611ede565b8154811061095d5761095d611e9b565b600091825260209091200154600980546001600160a01b03909216918390811061098957610989611e9b565b600091825260209091200180546001600160a01b0319166001600160a01b0392909216919091179055806109bc81611ef6565b91505061092e565b5060098054806109d6576109d6611f11565b600082815260209020810160001990810180546001600160a01b0319169055019055610a0f565b80610a0781611ef6565b9150506108ec565b506001600160a01b0382166000908152600a602052604090819020805460ff19169055517fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb666929061068b908490611c9f565b6000610a6a6111a0565b905090565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610736918590610aa6908690611ede565b611083565b33731be1a151ba3d24f594ee971dc9b843f23b5ba80e14610ade5760405162461bcd60e51b81526004016104cb90611f7b565b805160005b818110156107dc57600160076000858481518110610b0357610b03611e9b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b3f81611ef6565b915050610ae3565b610b51828261128e565b5050565b33610b686006546001600160a01b031690565b6001600160a01b031614610b8e5760405162461bcd60e51b81526004016104cb90611e49565b610b986000611312565b565b6001600160a01b03811660009081526005602052604081205461073a565b6060600480546106a690611f3d565b33610bda6006546001600160a01b031690565b6001600160a01b031614610c005760405162461bcd60e51b81526004016104cb90611e49565b6001600160a01b0381166000908152600a602052604090205460ff1615610c395760405162461bcd60e51b81526004016104cb9061205a565b610c4281611364565b50565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610c895760405162461bcd60e51b81526004016104cb906120aa565b610c963385858403611083565b5060019392505050565b3360009081526008602052604081205460ff1680610cd657506001600160a01b03831660009081526007602052604090205460ff165b610cf25760405162461bcd60e51b81526004016104cb90611fd8565b610cfc83836113f8565b9392505050565b600b818154811061085657600080fd5b806a52b7d2dcc80cd2e400000081610d2a60025490565b610d349190611ede565b1115610d525760405162461bcd60e51b81526004016104cb906120fd565b6107dc8383611405565b83421115610d7c5760405162461bcd60e51b81526004016104cb9061213f565b60007f0000000000000000000000000000000000000000000000000000000000000000888888610dab8c61147c565b89604051602001610dc19695949392919061214f565b6040516020818303038152906040528051906020012090506000610de4826114a4565b90506000610df4828787876114b7565b9050896001600160a01b0316816001600160a01b031614610e275760405162461bcd60e51b81526004016104cb906121db565b610e328a8a8a611083565b50505050505050505050565b60095460609060008167ffffffffffffffff811115610e5f57610e5f611ad1565b604051908082528060200260200182016040528015610e88578160200160208202803683370190505b50905060005b82811015610f035760098181548110610ea957610ea9611e9b565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110610ed957610ed9611e9b565b6001600160a01b039092166020928302919091019091015280610efb81611ef6565b915050610e8e565b5092915050565b33610f1d6006546001600160a01b031690565b6001600160a01b031614610f435760405162461bcd60e51b81526004016104cb90611e49565b6001600160a01b038116610f695760405162461bcd60e51b81526004016104cb9061222c565b610c4281611312565b33610f856006546001600160a01b031690565b6001600160a01b031614610fab5760405162461bcd60e51b81526004016104cb90611e49565b6001600160a01b0381166000908152600c602052604090205460ff1615610fe45760405162461bcd60e51b81526004016104cb9061226c565b600b805460018082019092557f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0384169081179091556000908152600c602052604090819020805460ff1916909217909155517f86e57fd2b90329052917118de7c3f521f400d439b9650deaa906a25b08b9456090611078908390611c9f565b60405180910390a150565b6001600160a01b0383166110a95760405162461bcd60e51b81526004016104cb906122bb565b6001600160a01b0382166110cf5760405162461bcd60e51b81526004016104cb90612308565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061112a908590611c17565b60405180910390a3505050565b60006111448484846114df565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156111885760405162461bcd60e51b81526004016104cb9061235b565b6111958533858403611083565b506001949350505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156111f957507f000000000000000000000000000000000000000000000000000000000000000046145b1561122357507f000000000000000000000000000000000000000000000000000000000000000090565b610a6a7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006115f4565b336000818152600c602052604090205460ff1615156001146112c25760405162461bcd60e51b81526004016104cb906123c3565b6112cc838361162e565b826001600160a01b03167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040516113059190611c17565b60405180910390a2505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6009805460018082019092557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0384169081179091556000908152600a602052604090819020805460ff1916909217909155517f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f690611078908390611c9f565b60006107363384846114df565b336000818152600a602052604090205460ff1615156001146114395760405162461bcd60e51b81526004016104cb906123c3565b61144383836116ff565b826001600160a01b03167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040516113059190611c17565b6001600160a01b03811660009081526005602052604090208054600181018255905b50919050565b600061073a6114b16111a0565b836117b3565b60008060006114c8878787876117e6565b915091506114d5816118c6565b5095945050505050565b6001600160a01b0383166115055760405162461bcd60e51b81526004016104cb90612413565b6001600160a01b03821661152b5760405162461bcd60e51b81526004016104cb90612461565b6001600160a01b038316600090815260208190526040902054818110156115645760405162461bcd60e51b81526004016104cb906124b2565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061159b908490611ede565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115e59190611c17565b60405180910390a35b50505050565b6000838383463060405160200161160f9594939291906124c2565b6040516020818303038152906040528051906020012090509392505050565b6001600160a01b0382166116545760405162461bcd60e51b81526004016104cb9061254a565b6001600160a01b0382166000908152602081905260409020548181101561168d5760405162461bcd60e51b81526004016104cb90612597565b6001600160a01b03831660009081526020819052604081208383039055600280548492906116bc908490611ec7565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061112a908690611c17565b6001600160a01b0382166117255760405162461bcd60e51b81526004016104cb906125d9565b80600260008282546117379190611ede565b90915550506001600160a01b03821660009081526020819052604081208054839290611764908490611ede565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117a7908590611c17565b60405180910390a35050565b600082826040516020016117c89291906125e9565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561181d57506000905060036118bd565b8460ff16601b1415801561183557508460ff16601c14155b1561184657506000905060046118bd565b60006001878787876040516000815260200160405260405161186b9493929190612614565b6020604051602081039080840390855afa15801561188d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166118b6576000600192509250506118bd565b9150600090505b94509492505050565b60008160048111156118da576118da612652565b14156118e35750565b60018160048111156118f7576118f7612652565b14156119155760405162461bcd60e51b81526004016104cb9061269a565b600281600481111561192957611929612652565b14156119475760405162461bcd60e51b81526004016104cb906126dc565b600381600481111561195b5761195b612652565b14156119795760405162461bcd60e51b81526004016104cb90612729565b600481600481111561198d5761198d612652565b1415610c425760405162461bcd60e51b81526004016104cb90612776565b60006001600160a01b03821661073a565b6119c5816119ab565b8114610c4257600080fd5b803561073a816119bc565b6000602082840312156119f0576119f0600080fd5b600061083e84846119d0565b60005b83811015611a175781810151838201526020016119ff565b838111156115ee5750506000910152565b6000611a32825190565b808452602084019350611a498185602086016119fc565b601f01601f19169290920192915050565b60208082528101610cfc8184611a28565b806119c5565b803561073a81611a6b565b60008060408385031215611a9257611a92600080fd5b6000611a9e85856119d0565b9250506020611aaf85828601611a71565b9150509250929050565b8015155b82525050565b6020810161073a8284611ab9565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611b0d57611b0d611ad1565b6040525050565b6000611b1f60405190565b9050611b2b8282611ae7565b919050565b600067ffffffffffffffff821115611b4a57611b4a611ad1565b5060209081020190565b6000611b67611b6284611b30565b611b14565b83815290506020808201908402830185811115611b8657611b86600080fd5b835b81811015611ba857611b9a87826119d0565b835260209283019201611b88565b5050509392505050565b600082601f830112611bc657611bc6600080fd5b813561083e848260208601611b54565b600060208284031215611beb57611beb600080fd5b813567ffffffffffffffff811115611c0557611c05600080fd5b61083e84828501611bb2565b80611abd565b6020810161073a8284611c11565b600080600060608486031215611c3d57611c3d600080fd5b6000611c4986866119d0565b9350506020611c5a868287016119d0565b9250506040611c6b86828701611a71565b9150509250925092565b600060208284031215611c8a57611c8a600080fd5b600061083e8484611a71565b611abd816119ab565b6020810161073a8284611c96565b60ff8116611abd565b6020810161073a8284611cad565b60ff81166119c5565b803561073a81611cc4565b600080600080600080600060e0888a031215611cf657611cf6600080fd5b6000611d028a8a6119d0565b9750506020611d138a828b016119d0565b9650506040611d248a828b01611a71565b9550506060611d358a828b01611a71565b9450506080611d468a828b01611ccd565b93505060a0611d578a828b01611a71565b92505060c0611d688a828b01611a71565b91505092959891949750929550565b60008060408385031215611d8d57611d8d600080fd5b6000611d9985856119d0565b9250506020611aaf858286016119d0565b611db48282611c96565b5060200190565b60200190565b6000611dcb825190565b808452602093840193830160005b82811015611dfe578151611ded8782611daa565b965050602082019150600101611dd9565b5093949350505050565b60208082528101610cfc8184611dc1565b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65729101908152611dbb565b6020808252810161073a81611e19565b601c8152602081017f546869732061646472657373206973206e6f742061206275726e65720000000081529050611dbb565b6020808252810161073a81611e59565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015611ed957611ed9611eb1565b500390565b60008219821115611ef157611ef1611eb1565b500190565b6000600019821415611f0a57611f0a611eb1565b5060010190565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b600281046001821680611f5157607f821691505b6020821081141561149e5761149e611f27565b6002815260208101610f0f60f31b81529050611dbb565b6020808252810161073a81611f64565b60308152602081017f596f7520617265206e6f7420616c6c6f77656420746f207472616e736665722081526f1d1bc81d1a1a5cc818dbdb9d1c9858dd60821b602082015290505b60400190565b6020808252810161073a81611f8b565b601c8152602081017f546869732061646472657373206973206e6f742061206d696e7465720000000081529050611dbb565b6020808252810161073a81611fe8565b60208082527f54686973206164647265737320697320616c72656164792061206d696e7465729101908152611dbb565b6020808252810161073a8161202a565b60258152602081017f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77815264207a65726f60d81b60208201529050611fd2565b6020808252810161073a8161206a565b60288152602081017f4465676973546f6b656e206578636565647320746865206361702028313030208152676d696c6c696f6e2960c01b60208201529050611fd2565b6020808252810161073a816120ba565b601d8152602081017f45524332305065726d69743a206578706972656420646561646c696e6500000081529050611dbb565b6020808252810161073a8161210d565b60c0810161215d8289611c11565b61216a6020830188611c96565b6121776040830187611c96565b6121846060830186611c11565b6121916080830185611c11565b61219e60a0830184611c11565b979650505050505050565b601e8152602081017f45524332305065726d69743a20696e76616c6964207369676e6174757265000081529050611dbb565b6020808252810161073a816121a9565b60268152602081017f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206181526564647265737360d01b60208201529050611fd2565b6020808252810161073a816121eb565b60208082527f54686973206164647265737320697320616c72656164792061206275726e65729101908152611dbb565b6020808252810161073a8161223c565b60248152602081017f45524332303a20617070726f76652066726f6d20746865207a65726f206164648152637265737360e01b60208201529050611fd2565b6020808252810161073a8161227c565b60228152602081017f45524332303a20617070726f766520746f20746865207a65726f206164647265815261737360f01b60208201529050611fd2565b6020808252810161073a816122cb565b60288152602081017f45524332303a207472616e7366657220616d6f756e74206578636565647320618152676c6c6f77616e636560c01b60208201529050611fd2565b6020808252810161073a81612318565b603a8152602081017f4f6e6c7920746865206164647265737320696e20746865206d696e746572206c81527f6973742063616e2063616c6c20746869732066756e6374696f6e00000000000060208201529050611fd2565b6020808252810161073a8161236b565b60258152602081017f45524332303a207472616e736665722066726f6d20746865207a65726f206164815264647265737360d81b60208201529050611fd2565b6020808252810161073a816123d3565b60238152602081017f45524332303a207472616e7366657220746f20746865207a65726f206164647281526265737360e81b60208201529050611fd2565b6020808252810161073a81612423565b60268152602081017f45524332303a207472616e7366657220616d6f756e7420657863656564732062815265616c616e636560d01b60208201529050611fd2565b6020808252810161073a81612471565b60a081016124d08288611c11565b6124dd6020830187611c11565b6124ea6040830186611c11565b6124f76060830185611c11565b6125046080830184611c96565b9695505050505050565b60218152602081017f45524332303a206275726e2066726f6d20746865207a65726f206164647265738152607360f81b60208201529050611fd2565b6020808252810161073a8161250e565b60228152602081017f45524332303a206275726e20616d6f756e7420657863656564732062616c616e815261636560f01b60208201529050611fd2565b6020808252810161073a8161255a565b601f8152602081017f45524332303a206d696e7420746f20746865207a65726f20616464726573730081529050611dbb565b6020808252810161073a816125a7565b61190160f01b81526002016125fe8184611c11565b60200161260b8183611c11565b60200192915050565b608081016126228287611c11565b61262f6020830186611cad565b61263c6040830185611c11565b6126496060830184611c11565b95945050505050565b634e487b7160e01b600052602160045260246000fd5b60188152602081017f45434453413a20696e76616c6964207369676e6174757265000000000000000081529050611dbb565b6020808252810161073a81612668565b601f8152602081017f45434453413a20696e76616c6964207369676e6174757265206c656e6774680081529050611dbb565b6020808252810161073a816126aa565b60228152602081017f45434453413a20696e76616c6964207369676e6174757265202773272076616c815261756560f01b60208201529050611fd2565b6020808252810161073a816126ec565b60228152602081017f45434453413a20696e76616c6964207369676e6174757265202776272076616c815261756560f01b60208201529050611fd2565b6020808252810161073a8161273956fea264697066735822122002fffb6356149749995ad9cbeb2e6148f7dc7040c39c6565153323c5f57681a664736f6c634300080a0033