[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyExists", "type": "error" }, { "inputs": [], "name": "InvalidOwner", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSender", "type": "error" }, { "inputs": [], "name": "NotFound", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "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": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ERC20Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ERC721Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "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": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amountOrId", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "targets", "type": "address[]" }, { "internalType": "bool[]", "name": "states", "type": "bool[]" } ], "name": "batchWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minted", "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": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "revokeOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "safeTransferFrom", "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": "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": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "name": "setNameSymbol", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setWhitelist", "outputs": [], "stateMutability": "nonpayable", "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": "", "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": "amountOrId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60c06040523480156200001157600080fd5b50604080518082018252600a81526914195b99dd5a5b8d0c0d60b21b602080830191909152825180840190935260078352662822a723aaa4a760c91b908301529060126122b833808062000078576040516349e27cff60e01b815260040160405180910390fd5b600080546001600160a01b0319166001600160a01b03831690811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001620000cf8682620002a9565b506002620000de8582620002a9565b5060ff83166080819052620000f590600a620004c0565b620001019083620004d7565b60a05250503360008181526004602052604090206901e1d1c72d5b97e0000090556200013493509150600190506200013a565b620004f9565b6000546001600160a01b0316331462000165576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b600281046001821680620001d157607f821691505b602082108103620001e657620001e6620001a6565b50919050565b6000620001fd620001fa8381565b90565b92915050565b6200020e83620001ec565b81546008840282811b60001990911b908116901990911617825550505050565b60006200023d81848462000203565b505050565b818110156200026157620002586000826200022e565b60010162000242565b5050565b601f8211156200023d576000818152602090206020601f850104810160208510156200028e5750805b620002a26020601f86010483018262000242565b5050505050565b81516001600160401b03811115620002c557620002c562000190565b620002d18254620001bc565b620002de82828562000265565b6020601f831160018114620003155760008415620002fc5750858201515b600019600886021c198116600286021786555062000371565b600085815260208120601f198616915b8281101562000347578885015182556020948501946001909201910162000325565b86831015620003645784890151600019601f89166008021c191682555b6001600288020188555050505b505050505050565b634e487b7160e01b600052601160045260246000fd5b80825b6001851115620003d557808604811115620003b157620003b162000379565b6001851615620003c057908102905b8002620003cd8560011c90565b945062000392565b94509492505050565b600082620003ef57506001620004b9565b81620003fe57506000620004b9565b8160018114620004175760028114620004225762000456565b6001915050620004b9565b60ff84111562000436576200043662000379565b8360020a9150848211156200044f576200044f62000379565b50620004b9565b5060208310610133831016604e8410600b84101617156200048e575081810a8381111562000488576200048862000379565b620004b9565b6200049d84848460016200038f565b92509050818404811115620004b657620004b662000379565b81025b9392505050565b600060ff83169250620004b96000198484620003de565b818102808215838204851417620004f257620004f262000379565b5092915050565b60805160a05161314562000526600039600061023901526000818161028a01526118c701526131456000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638da5cb5b116100ee578063c87b56dd11610097578063e0df5b6f11610071578063e0df5b6f146103f8578063e985e9c51461040b578063f075e77614610439578063f2fde38b1461044c57600080fd5b8063c87b56dd146103b2578063d547cfb7146103c5578063dd62ed3e146103cd57600080fd5b8063a22cb465116100c8578063a22cb46514610379578063a9059cbb1461038c578063b88d4fde1461039f57600080fd5b80638da5cb5b1461032e57806395d89b411461034e5780639b19251a1461035657600080fd5b8063313ce5671161015b578063504334c211610135578063504334c2146102d557806353d6fd59146102e85780636352211e146102fb57806370a082311461030e57600080fd5b8063313ce5671461028557806342842e0e146102b95780634f02c420146102cc57600080fd5b806318160ddd1161018c57806318160ddd1461023457806323b872dd146102685780632b9689581461027d57600080fd5b806306fdde03146101b3578063081812fc146101d1578063095ea7b314610214575b600080fd5b6101bb61045f565b6040516101c8919061207e565b60405180910390f35b6102076101df3660046120aa565b60066020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6040516101c89190612100565b610227610222366004612122565b6104ed565b6040516101c89190612167565b61025b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101c8919061217b565b61027b610276366004612189565b6106b0565b005b61027b610ba0565b6102ac7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101c891906121e2565b61027b6102c7366004612189565b610c45565b61025b60035481565b61027b6102e3366004612333565b610d68565b61027b6102f63660046123ae565b610dc7565b6102076103093660046120aa565b610e6e565b61025b61031c3660046123e1565b60046020526000908152604090205481565b6000546102079073ffffffffffffffffffffffffffffffffffffffff1681565b6101bb610ecf565b6102276103643660046123e1565b600b6020526000908152604090205460ff1681565b61027b6103873660046123ae565b610edc565b61022761039a366004612122565b610f76565b61027b6103ad366004612454565b610f8a565b6101bb6103c03660046120aa565b6110b1565b6101bb6115fd565b61025b6103db3660046124d8565b600560209081526000928352604080842090915290825290205481565b61027b61040636600461250b565b61160a565b6102276104193660046124d8565b600760209081526000928352604080842090915290825290205460ff1681565b61027b610447366004612591565b611667565b61027b61045a3660046123e1565b6117b2565b6001805461046c90612639565b80601f016020809104026020016040519081016040528092919081815260200182805461049890612639565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b505050505081565b600060035482111580156105015750600082115b156106365760008281526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1633811480159061056c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16155b156105a3576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000838152600660205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8781169182179092559151908316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061062890879061217b565b60405180910390a3506106a6565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff881680855292529182902085905590519091907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061069d90869061217b565b60405180910390a35b5060015b92915050565b6003548111610af95760008181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff848116911614610719576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216610766576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8416148015906107bd575073ffffffffffffffffffffffffffffffffffffffff8316600090815260076020908152604080832033845290915290205460ff16155b80156107ed575060008181526006602052604090205473ffffffffffffffffffffffffffffffffffffffff163314155b15610824576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61082c6118c0565b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602052604081208054909190610861908490612694565b9091555061086f90506118c0565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260046020908152604080832080549096019095558582526008815284822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116909417905560068152848220805490931690925591861682526009905290812080546108fe90600190612694565b8154811061090e5761090e6126a7565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff87168352600982526040808420868552600a9093529092205481549293508392811061095f5761095f6126a7565b600091825260208083209091019290925573ffffffffffffffffffffffffffffffffffffffff861681526009909152604090208054806109a1576109a16126d6565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101839055909201909255838252600a81526040808320548484528184205573ffffffffffffffffffffffffffffffffffffffff8616808452600983529083208054600181810183558286529385200186905592529054610a309190612694565b6000838152600a6020526040808220929092559051839173ffffffffffffffffffffffffffffffffffffffff80871692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e031487610ade6118c0565b604051610aeb919061217b565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526005602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b8d57610b5b8282612694565b73ffffffffffffffffffffffffffffffffffffffff851660009081526005602090815260408083203384529091529020555b610b988484846118f2565b50505b505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610bf1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016815560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3565b610c508383836106b0565b73ffffffffffffffffffffffffffffffffffffffff82163b15801590610d3157506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff84169063150b7a0290610cc990339088908790600401612705565b6020604051808303816000875af1158015610ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c9190612779565b7fffffffff000000000000000000000000000000000000000000000000000000001614155b15610b9b576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005473ffffffffffffffffffffffffffffffffffffffff163314610db9576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dc38282611b0d565b5050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e18576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff919091166000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60008181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1680610eca576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6002805461046c90612639565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff871680855292529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610f6a908590612167565b60405180910390a35050565b6000610f833384846118f2565b9392505050565b610f958585856106b0565b73ffffffffffffffffffffffffffffffffffffffff84163b1580159061107a57506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063150b7a02906110129033908a908990899089906004016127db565b6020604051808303816000875af1158015611031573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110559190612779565b7fffffffff000000000000000000000000000000000000000000000000000000001614155b15610b98576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60606000600c80546110c290612639565b905011156110fc57600c6110d583611b26565b6040516020016110e69291906128d3565b6040516020818303038152906040529050919050565b60008260405160200161110f91906128ee565b6040516020818303038152906040528051906020012060f81c905060608060278360ff1611611190576040518060800160405280605181526020016130bf6051913991506040518060400160405280600e81526020017f4f72616e67652050656e6775696e0000000000000000000000000000000000008152509050611441565b604f8360ff16116111f357604051806080016040528060518152602001612fcc6051913991506040518060400160405280600d81526020017f477265656e2050656e6775696e000000000000000000000000000000000000008152509050611441565b60778360ff161161125657604051806080016040528060518152602001612f7b6051913991506040518060400160405280600c81526020017f426c75652050656e6775696e00000000000000000000000000000000000000008152509050611441565b609f8360ff16116112b95760405180608001604052806051815260200161301d6051913991506040518060400160405280600e81526020017f59656c6c6f772050656e6775696e0000000000000000000000000000000000008152509050611441565b60c78360ff161161131c57604051806080016040528060518152602001612e886051913991506040518060400160405280600b81526020017f5265642050656e6775696e0000000000000000000000000000000000000000008152509050611441565b60ef8360ff161161137f57604051806080016040528060518152602001612f2a6051913991506040518060400160405280600c81526020017f50696e6b2050656e6775696e00000000000000000000000000000000000000008152509050611441565b60fc8360ff16116113e257604051806080016040528060518152602001612ed96051913991506040518060400160405280601581526020017f426c61636b20262057686974652050656e6775696e00000000000000000000008152509050611441565b60ff8360ff16116114415760405180608001604052806051815260200161306e6051913991506040518060400160405280600c81526020017f526963682050656e6775696e000000000000000000000000000000000000000081525090505b600061144c86611b26565b60405160200161145c9190612903565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905261149791602001612935565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526114d4918590602001612a07565b60405160208183030381529060405290506000826040516020016114f89190612a13565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282018252600483527f227d5d7d000000000000000000000000000000000000000000000000000000006020848101919091529151909350611569918591859101612a07565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526115a6918390602001612a07565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526115e191602001612a6b565b6040516020818303038152906040529650505050505050919050565b600c805461046c90612639565b60005473ffffffffffffffffffffffffffffffffffffffff16331461165b576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c610dc38282612b51565b60005473ffffffffffffffffffffffffffffffffffffffff1633146116b8576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8281146116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190612c6f565b60405180910390fd5b60005b83811015610b9857828282818110611717576117176126a7565b905060200201602081019061172c9190612caa565b600b6000878785818110611742576117426126a7565b905060200201602081019061175791906123e1565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169115159190911790556001016116fd565b60005473ffffffffffffffffffffffffffffffffffffffff163314611803576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116611850576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b60006118ed7f0000000000000000000000000000000000000000000000000000000000000000600a612dd9565b905090565b6000806118fd6118c0565b73ffffffffffffffffffffffffffffffffffffffff8087166000818152600460205260408082208054948a16835290822054928252939450919290918691906119468386612694565b909155505073ffffffffffffffffffffffffffffffffffffffff808716600090815260046020908152604080832080548a019055928a168252600b9052205460ff166119fc5773ffffffffffffffffffffffffffffffffffffffff87166000908152600460205260408120546119bd908590612e3b565b6119c78585612e3b565b6119d19190612694565b905060005b818110156119f9576119e789611be5565b806119f181612e4f565b9150506119d6565b50505b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b602052604090205460ff16611a9b576000611a358483612e3b565b73ffffffffffffffffffffffffffffffffffffffff8816600090815260046020526040902054611a66908690612e3b565b611a709190612694565b905060005b81811015611a9857611a8688611d9d565b80611a9081612e4f565b915050611a75565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148787604051611af8919061217b565b60405180910390a35060019695505050505050565b6001611b198382612b51565b506002610b9b8282612b51565b60606000611b3383611f26565b600101905060008167ffffffffffffffff811115611b5357611b536121f0565b6040519080825280601f01601f191660200182016040528015611b7d576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084611b87575b509392505050565b73ffffffffffffffffffffffffffffffffffffffff8116611c32576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526009602052604081208054611c6590600190612694565b81548110611c7557611c756126a7565b90600052602060002001549050600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611cd057611cd06126d6565b6000828152602080822083017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff908101839055909201909255828252600a815260408083208390556008825280832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116909155600690925280832080549092169091555182919073ffffffffffffffffffffffffffffffffffffffff8516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b73ffffffffffffffffffffffffffffffffffffffff8116611dea576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001019081905560008181526008602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611e51576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081815260086020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155808452600983529083208054600181810183558286529385200185905592529054611ece9190612694565b6000828152600a6020526040808220929092559051829173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611f6f577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611f9b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611fb957662386f26fc10000830492506010015b6305f5e1008310611fd1576305f5e100830492506008015b6127108310611fe557612710830492506004015b60648310611ff7576064830492506002015b600a83106106aa5760010192915050565b60005b8381101561202357818101518382015260200161200b565b50506000910152565b6000612036825190565b80845260208401935061204d818560208601612008565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8201165b9093019392505050565b60208082528101610f83818461202c565b805b811461209c57600080fd5b50565b80356106aa8161208f565b6000602082840312156120bf576120bf600080fd5b60006120cb848461209f565b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82166106aa565b6120fa816120d3565b82525050565b602081016106aa82846120f1565b612091816120d3565b80356106aa8161210e565b6000806040838503121561213857612138600080fd5b60006121448585612117565b92505060206121558582860161209f565b9150509250929050565b8015156120fa565b602081016106aa828461215f565b806120fa565b602081016106aa8284612175565b6000806000606084860312156121a1576121a1600080fd5b60006121ad8686612117565b93505060206121be86828701612117565b92505060406121cf8682870161209f565b9150509250925092565b60ff81166120fa565b602081016106aa82846121d9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715612263576122636121f0565b6040525050565b600061227560405190565b9050610eca828261221f565b600067ffffffffffffffff82111561229b5761229b6121f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011660200192915050565b82818337506000910152565b60006122e96122e484612281565b61226a565b90508281526020810184848401111561230457612304600080fd5b611bdd8482856122ca565b600082601f83011261232357612323600080fd5b81356120cb8482602086016122d6565b6000806040838503121561234957612349600080fd5b823567ffffffffffffffff81111561236357612363600080fd5b61236f8582860161230f565b925050602083013567ffffffffffffffff81111561238f5761238f600080fd5b6121558582860161230f565b801515612091565b80356106aa8161239b565b600080604083850312156123c4576123c4600080fd5b60006123d08585612117565b9250506020612155858286016123a3565b6000602082840312156123f6576123f6600080fd5b60006120cb8484612117565b60008083601f84011261241757612417600080fd5b50813567ffffffffffffffff81111561243257612432600080fd5b60208301915083600182028301111561244d5761244d600080fd5b9250929050565b60008060008060006080868803121561246f5761246f600080fd5b600061247b8888612117565b955050602061248c88828901612117565b945050604061249d8882890161209f565b935050606086013567ffffffffffffffff8111156124bd576124bd600080fd5b6124c988828901612402565b92509250509295509295909350565b600080604083850312156124ee576124ee600080fd5b60006124fa8585612117565b925050602061215585828601612117565b60006020828403121561252057612520600080fd5b813567ffffffffffffffff81111561253a5761253a600080fd5b6120cb8482850161230f565b60008083601f84011261255b5761255b600080fd5b50813567ffffffffffffffff81111561257657612576600080fd5b60208301915083602082028301111561244d5761244d600080fd5b600080600080604085870312156125aa576125aa600080fd5b843567ffffffffffffffff8111156125c4576125c4600080fd5b6125d087828801612546565b9450945050602085013567ffffffffffffffff8111156125f2576125f2600080fd5b6125fe87828801612546565b95989497509550505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60028104600182168061264d57607f821691505b60208210810361265f5761265f61260a565b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818103818111156106aa576106aa612665565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6080810161271382866120f1565b61272060208301856120f1565b61272d6040830184612175565b8181036060830152600081526020810195945050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116612091565b80516106aa81612746565b60006020828403121561278e5761278e600080fd5b60006120cb848461276e565b81835260006020840193506127b08385846122ca565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116612074565b608081016127e982886120f1565b6127f660208301876120f1565b6128036040830186612175565b818103606083015261281681848661279a565b979650505050505050565b6000815461282e81612639565b6001821680156128455760018114612878576128a8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831686528115158202860193506128a8565b60008581526020902060005b838110156128a057815488820152600190910190602001612884565b838801955050505b50505092915050565b60006128bb825190565b6128c9818560208601612008565b9290920192915050565b60006128df8285612821565b91506120cb82846128b1565b90565b60006128fa8284612175565b50602001919050565b7f7b226e616d65223a202250656e6775696e34303420230000000000000000000081526016016000610f8382846128b1565b600061294182846128b1565b7f222c226465736372697074696f6e223a224120636f6c6c656374696f6e206f6681527f2031302c303030205265706c6963616e747320656e61626c656420627920455260208201527f43343034202d20616e206578706572696d656e74616c20746f6b656e2073746160408201527f6e646172642e222c2265787465726e616c5f75726c223a2268747470733a2f2f60608201527f7777772e70656e6775696e3430342e636f6d222c22696d616765223a2200000060808201529150609d8201610f83565b60006128df82856128b1565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a224381527f6f6c6f72222c2276616c7565223a2200000000000000000000000000000000006020820152602f016000610f8382846128b1565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c00000000008152601b016000610f8382846128b1565b60006106aa6128eb8381565b612ab283612a9d565b81546008840282811b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911b908116901990911617825550505050565b6000610b9b818484612aa9565b81811015610dc357612b10600082612af0565b600101612afd565b601f821115610b9b576000818152602090206020601f85010481016020851015612b3f5750805b610b986020601f860104830182612afd565b815167ffffffffffffffff811115612b6b57612b6b6121f0565b612b758254612639565b612b80828285612b18565b6020601f831160018114612bd25760008415612b9c5750858201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600886021c1981166002860217865550612c67565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612c205788850151825560209485019460019092019101612c00565b86831015612c5a57848901517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff601f89166008021c191682555b6001600288020188555050505b505050505050565b602080825281016106aa81601081527f4d69736d61746368206c656e6774687300000000000000000000000000000000602082015260400190565b600060208284031215612cbf57612cbf600080fd5b60006120cb84846123a3565b80825b6001851115612d0a57808604811115612ce957612ce9612665565b6001851615612cf757908102905b8002612d038560011c90565b9450612cce565b94509492505050565b600082612d2257506001610f83565b81612d2f57506000610f83565b8160018114612d455760028114612d4f57612d7c565b6001915050610f83565b60ff841115612d6057612d60612665565b8360020a915084821115612d7657612d76612665565b50610f83565b5060208310610133831016604e8410600b8410161715612daf575081810a83811115612daa57612daa612665565b610f83565b612dbc8484846001612ccb565b92509050818404811115612dd257612dd2612665565b0292915050565b600060ff83169250610f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d13565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612e4a57612e4a612e0c565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e8057612e80612665565b506001019056fe68747470733a2f2f6261666b72656964707a6468726232726a7773726172796d69636869686f796569776b79726b686f367076766334746233686235783633703775692e697066732e7733732e6c696e6b68747470733a2f2f6261666b726569633477746b737a766f62343763356c6479626e7832623368756d797732736a756b683369376661636e73627161333236716732712e697066732e7733732e6c696e6b68747470733a2f2f6261666b726569617869376536737536796b786d6176346735626e61786e6f77696d6b3675636c78376e6332646a656f6534627a616d36326d69652e697066732e7733732e6c696e6b68747470733a2f2f6261666b72656966656d7a6635657464336766716778727236697a6a33706d726f37343761716b703776336d35676872736b366d36716e616e33342e697066732e7733732e6c696e6b68747470733a2f2f6261666b7265696834746b36323562756a676b6966616b726c6a736479676c6d787334356b6e757035376279326667776333646b376a36746964342e697066732e7733732e6c696e6b68747470733a2f2f6261666b72656963616263656573616e626e6e6c6a7a7762753764687664376b756f6f7776786673346a346633766f7533633577616b657736746d2e697066732e7733732e6c696e6b68747470733a2f2f6261666b726569633279616f6872756877327061677a78656432743272716f687372726a34326564746a623671663566707a766b6971377a7961712e697066732e7733732e6c696e6b68747470733a2f2f6261666b72656968756c327a3334356d696177676673786537616536666571666232356f786f70367432627a716e736a797062747565696c6d6b612e697066732e7733732e6c696e6ba264697066735822122076e330d77c59381102284719c5b0236ed8b1e7f2634188028bce536afae9761164736f6c63430008110033