[ { "inputs": [ { "internalType": "address", "name": "initialOwner", "type": "address" }, { "internalType": "address", "name": "royaltiesAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC1155InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC1155InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "idsLength", "type": "uint256" }, { "internalType": "uint256", "name": "valuesLength", "type": "uint256" } ], "name": "ERC1155InvalidArrayLength", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC1155InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC1155InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC1155InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidDefaultRoyalty", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidDefaultRoyaltyReceiver", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidTokenRoyalty", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidTokenRoyaltyReceiver", "type": "error" }, { "inputs": [], "name": "MintAmountZero", "type": "error" }, { "inputs": [], "name": "MintEmptyMetadata", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMetadataExists", "type": "error" }, { "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": "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": "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": [ { "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": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "burnBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "burnBalanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "string", "name": "base64Metadata", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "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": "value", "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": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "totalBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "totalBurnBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalBurnSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalBurnSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162004593380380620045938339818101604052810190620000379190620003fc565b81604051806020016040528060008152506200005981620000fd60201b60201c565b50600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000cf5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000c6919062000454565b60405180910390fd5b620000e0816200011260201b60201c565b50620000f5816101f4620001d860201b60201c565b505062000861565b80600290816200010e9190620006eb565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000620001ea6200038860201b60201c565b6bffffffffffffffffffffffff16905080826bffffffffffffffffffffffff161115620002525781816040517f6f483d090000000000000000000000000000000000000000000000000000000081526004016200024992919062000834565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620002c75760006040517fb6d9900a000000000000000000000000000000000000000000000000000000008152600401620002be919062000454565b60405180910390fd5b60405180604001604052808473ffffffffffffffffffffffffffffffffffffffff168152602001836bffffffffffffffffffffffff16815250600560008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550905050505050565b6000612710905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003c48262000397565b9050919050565b620003d681620003b7565b8114620003e257600080fd5b50565b600081519050620003f681620003cb565b92915050565b6000806040838503121562000416576200041562000392565b5b60006200042685828601620003e5565b92505060206200043985828601620003e5565b9150509250929050565b6200044e81620003b7565b82525050565b60006020820190506200046b600083018462000443565b92915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004f357607f821691505b602082108103620005095762000508620004ab565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000534565b6200057f868362000534565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005cc620005c6620005c08462000597565b620005a1565b62000597565b9050919050565b6000819050919050565b620005e883620005ab565b62000600620005f782620005d3565b84845462000541565b825550505050565b600090565b6200061762000608565b62000624818484620005dd565b505050565b5b818110156200064c57620006406000826200060d565b6001810190506200062a565b5050565b601f8211156200069b5762000665816200050f565b620006708462000524565b8101602085101562000680578190505b620006986200068f8562000524565b83018262000629565b50505b505050565b600082821c905092915050565b6000620006c060001984600802620006a0565b1980831691505092915050565b6000620006db8383620006ad565b9150826002028217905092915050565b620006f68262000471565b67ffffffffffffffff8111156200071257620007116200047c565b5b6200071e8254620004da565b6200072b82828562000650565b600060209050601f8311600181146200076357600084156200074e578287015190505b6200075a8582620006cd565b865550620007ca565b601f19841662000773866200050f565b60005b828110156200079d5784890151825560018201915060208501945060208101905062000776565b86831015620007bd5784890151620007b9601f891682620006ad565b8355505b6001600288020188555050505b505050505050565b60006bffffffffffffffffffffffff82169050919050565b60006200080b62000805620007ff84620007d2565b620005a1565b62000597565b9050919050565b6200081d81620007ea565b82525050565b6200082e8162000597565b82525050565b60006040820190506200084b600083018562000812565b6200085a602083018462000823565b9392505050565b613d2280620008716000396000f3fe608060405234801561001057600080fd5b50600436106101725760003560e01c80636b20c454116100de578063bd85b03911610097578063e985e9c511610071578063e985e9c5146104aa578063f242432a146104da578063f2fde38b146104f6578063f5298aca1461051257610172565b8063bd85b0391461042c578063c79703261461045c578063e8a3d4851461048c57610172565b80636b20c45414610380578063715018a61461039c5780638294b907146103a65780638da5cb5b146103d6578063a22cb465146103f4578063bb7fde711461041057610172565b80632eb2c2d6116101305780632eb2c2d6146102865780634b0ee02a146102a25780634e1273f4146102d25780634f558e7914610302578063509d9b5c14610332578063594f3a1f1461036257610172565b8062fdd58e1461017757806301ffc9a7146101a7578063064ffa5f146101d75780630e89341c1461020757806318160ddd146102375780632a55205a14610255575b600080fd5b610191600480360381019061018c91906126c0565b61052e565b60405161019e919061270f565b60405180910390f35b6101c160048036038101906101bc9190612782565b610588565b6040516101ce91906127ca565b60405180910390f35b6101f160048036038101906101ec91906127e5565b61059a565b6040516101fe919061270f565b60405180910390f35b610221600480360381019061021c91906127e5565b6105b7565b60405161022e91906128a2565b60405180910390f35b61023f6105f2565b60405161024c919061270f565b60405180910390f35b61026f600480360381019061026a91906128c4565b6105fc565b60405161027d929190612913565b60405180910390f35b6102a0600480360381019061029b9190612b39565b6107e6565b005b6102bc60048036038101906102b79190612c08565b61088e565b6040516102c9919061270f565b60405180910390f35b6102ec60048036038101906102e79190612cf8565b6108d7565b6040516102f99190612e2e565b60405180910390f35b61031c600480360381019061031791906127e5565b6109e0565b60405161032991906127ca565b60405180910390f35b61034c60048036038101906103479190612cf8565b6109f4565b6040516103599190612e2e565b60405180910390f35b61036a610afd565b604051610377919061270f565b60405180910390f35b61039a60048036038101906103959190612e50565b610b07565b005b6103a4610bb3565b005b6103c060048036038101906103bb91906126c0565b610bc7565b6040516103cd919061270f565b60405180910390f35b6103de610c22565b6040516103eb9190612edb565b60405180910390f35b61040e60048036038101906104099190612f22565b610c4c565b005b61042a60048036038101906104259190613003565b610c62565b005b610446600480360381019061044191906127e5565b610da2565b604051610453919061270f565b60405180910390f35b61047660048036038101906104719190612c08565b610dbf565b604051610483919061270f565b60405180910390f35b610494610e08565b6040516104a191906128a2565b60405180910390f35b6104c460048036038101906104bf9190613086565b610e36565b6040516104d191906127ca565b60405180910390f35b6104f460048036038101906104ef91906130c6565b610eca565b005b610510600480360381019061050b9190612c08565b610f72565b005b61052c6004803603810190610527919061315d565b610ff8565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000610593826110a4565b9050919050565b6000600c6000838152602001908152602001600020549050919050565b6060600d60008381526020019081526020016000206040516020016105dc91906132d9565b6040516020818303038152906040529050919050565b6000600454905090565b6000806000600660008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036107915760056040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b600061079b61111e565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866107c7919061332e565b6107d1919061339f565b90508160000151819350935050509250929050565b60006107f0611128565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561083557506108338682610e36565b155b156108795780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016108709291906133d0565b60405180910390fd5b6108868686868686611130565b505050505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060815183511461092357815183516040517f5b05999100000000000000000000000000000000000000000000000000000000815260040161091a9291906133f9565b60405180910390fd5b6000835167ffffffffffffffff8111156109405761093f612941565b5b60405190808252806020026020018201604052801561096e5781602001602082028036833780820191505090505b50905060005b84518110156109d5576109ab610993828761122890919063ffffffff16565b6109a6838761123c90919063ffffffff16565b61052e565b8282815181106109be576109bd613422565b5b602002602001018181525050806001019050610974565b508091505092915050565b6000806109ec83610da2565b119050919050565b60608151835114610a4057815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610a379291906133f9565b60405180910390fd5b6000835167ffffffffffffffff811115610a5d57610a5c612941565b5b604051908082528060200260200182016040528015610a8b5781602001602082028036833780820191505090505b50905060005b8451811015610af257610ac8610ab0828761122890919063ffffffff16565b610ac3838761123c90919063ffffffff16565b610bc7565b828281518110610adb57610ada613422565b5b602002602001018181525050806001019050610a91565b508091505092915050565b6000600854905090565b610b0f611128565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015610b585750610b5683610b51611128565b610e36565b155b15610ba357610b65611128565b836040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b9a9291906133d0565b60405180910390fd5b610bae838383611250565b505050565b610bbb6112e4565b610bc5600061136b565b565b6000600b600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c5e610c57611128565b8383611431565b5050565b610c6a6112e4565b6000610c75846109e0565b9050600080835111905060008403610cb9576040517f39d7ecde00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818015610cc35750805b15610d0557846040517fb8ceb317000000000000000000000000000000000000000000000000000000008152600401610cfc919061270f565b60405180910390fd5b81158015610d105750805b15610d3b5782600d60008781526020019081526020016000209081610d3591906135e8565b50610d7f565b81158015610d47575080155b15610d7e576040517f2f44b0a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b610d9a868686604051806020016040528060008152506115a1565b505050505050565b600060036000838152602001908152602001600020549050919050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060610e1261163a565b604051602001610e2291906138b3565b604051602081830303815290604052905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ed4611128565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610f195750610f178682610e36565b155b15610f5d5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610f549291906133d0565b60405180910390fd5b610f6a868686868661165d565b505050505050565b610f7a6112e4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610fec5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610fe39190612edb565b60405180910390fd5b610ff58161136b565b50565b611000611128565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611049575061104783611042611128565b610e36565b155b1561109457611056611128565b836040517fe237d92200000000000000000000000000000000000000000000000000000000815260040161108b9291906133d0565b60405180910390fd5b61109f838383611768565b505050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061111757506111168261180f565b5b9050919050565b6000612710905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111a25760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111999190612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036112145760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161120b9190612edb565b60405180910390fd5b61122185858585856118f1565b5050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112c25760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016112b99190612edb565b60405180910390fd5b6112df8360008484604051806020016040528060008152506118f1565b505050565b6112ec611128565b73ffffffffffffffffffffffffffffffffffffffff1661130a610c22565b73ffffffffffffffffffffffffffffffffffffffff16146113695761132d611128565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016113609190612edb565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114a35760006040517fced3e10000000000000000000000000000000000000000000000000000000000815260040161149a9190612edb565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161159491906127ca565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116135760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161160a9190612edb565b60405180910390fd5b60008061162085856119a3565b915091506116326000878484876118f1565b505050505050565b6060604051806101a001604052806101758152602001613b786101759139905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036116cf5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016116c69190612edb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117415760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016117389190612edb565b60405180910390fd5b60008061174e85856119a3565b9150915061175f87878484876118f1565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117da5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016117d19190612edb565b60405180910390fd5b6000806117e784846119a3565b915091506118088560008484604051806020016040528060008152506118f1565b5050505050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118da57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118ea57506118e9826119d3565b5b9050919050565b6118fd85858585611a3d565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461199c57600061193b611128565b9050600184510361198b57600061195c60008661123c90919063ffffffff16565b9050600061197460008661123c90919063ffffffff16565b9050611984838989858589611d5d565b505061199a565b611999818787878787611f11565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000825190506000805b82811015611a8257838181518110611a6257611a61613422565b5b602002602001015182611a75919061393a565b9150806001019050611a47565b50600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611b0e5780600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b06919061396e565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611b995780600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b91919061393a565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611d49576000805b83811015611cd7576000858281518110611bee57611bed613422565b5b6020026020010151905080600c6000898581518110611c1057611c0f613422565b5b602002602001015181526020019081526020016000206000828254611c35919061393a565b9250508190555080600b6000898581518110611c5457611c53613422565b5b6020026020010151815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cb6919061393a565b925050819055508083611cc9919061393a565b925050806001019050611bd1565b5080600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d27919061393a565b925050819055508060086000828254611d40919061393a565b92505081905550505b611d55868686866120c5565b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f09578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611dbe9594939291906139f7565b6020604051808303816000875af1925050508015611dfa57506040513d601f19601f82011682018060405250810190611df79190613a66565b60015b611e7e573d8060008114611e2a576040519150601f19603f3d011682016040523d82523d6000602084013e611e2f565b606091505b506000815103611e7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e6d9190612edb565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611efe9190612edb565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b11156120bd578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611f72959493929190613a93565b6020604051808303816000875af1925050508015611fae57506040513d601f19601f82011682018060405250810190611fab9190613a66565b60015b612032573d8060008114611fde576040519150601f19603f3d011682016040523d82523d6000602084013e611fe3565b606091505b50600081510361202a57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120219190612edb565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120bb57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120b29190612edb565b60405180910390fd5b505b505050505050565b6120d184848484612270565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121ab576000805b835181101561218f57600083828151811061212757612126613422565b5b60200260200101519050806003600087858151811061214957612148613422565b5b60200260200101518152602001908152602001600020600082825461216e919061393a565b925050819055508083612181919061393a565b925050806001019050612109565b5080600460008282546121a2919061393a565b92505081905550505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361226a576000805b835181101561225757600083828151811061220157612200613422565b5b60200260200101519050806003600087858151811061222357612222613422565b5b60200260200101518152602001908152602001600020600082825403925050819055508083019250508060010190506121e3565b5080600460008282540392505081905550505b50505050565b80518251146122ba57815181516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016122b19291906133f9565b60405180910390fd5b60006122c4611128565b905060005b83518110156124d35760006122e7828661123c90919063ffffffff16565b905060006122fe838661123c90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161461242b57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123d357888183856040517f03dee4c50000000000000000000000000000000000000000000000000000000081526004016123ca9493929190613afb565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146124c6578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124be919061393a565b925050819055505b50508060010190506122c9565b5060018351036125925760006124f360008561123c90919063ffffffff16565b9050600061250b60008561123c90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516125839291906133f9565b60405180910390a45050612611565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612608929190613b40565b60405180910390a45b5050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126578261262c565b9050919050565b6126678161264c565b811461267257600080fd5b50565b6000813590506126848161265e565b92915050565b6000819050919050565b61269d8161268a565b81146126a857600080fd5b50565b6000813590506126ba81612694565b92915050565b600080604083850312156126d7576126d6612622565b5b60006126e585828601612675565b92505060206126f6858286016126ab565b9150509250929050565b6127098161268a565b82525050565b60006020820190506127246000830184612700565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61275f8161272a565b811461276a57600080fd5b50565b60008135905061277c81612756565b92915050565b60006020828403121561279857612797612622565b5b60006127a68482850161276d565b91505092915050565b60008115159050919050565b6127c4816127af565b82525050565b60006020820190506127df60008301846127bb565b92915050565b6000602082840312156127fb576127fa612622565b5b6000612809848285016126ab565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561284c578082015181840152602081019050612831565b60008484015250505050565b6000601f19601f8301169050919050565b600061287482612812565b61287e818561281d565b935061288e81856020860161282e565b61289781612858565b840191505092915050565b600060208201905081810360008301526128bc8184612869565b905092915050565b600080604083850312156128db576128da612622565b5b60006128e9858286016126ab565b92505060206128fa858286016126ab565b9150509250929050565b61290d8161264c565b82525050565b60006040820190506129286000830185612904565b6129356020830184612700565b9392505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61297982612858565b810181811067ffffffffffffffff8211171561299857612997612941565b5b80604052505050565b60006129ab612618565b90506129b78282612970565b919050565b600067ffffffffffffffff8211156129d7576129d6612941565b5b602082029050602081019050919050565b600080fd5b6000612a006129fb846129bc565b6129a1565b90508083825260208201905060208402830185811115612a2357612a226129e8565b5b835b81811015612a4c5780612a3888826126ab565b845260208401935050602081019050612a25565b5050509392505050565b600082601f830112612a6b57612a6a61293c565b5b8135612a7b8482602086016129ed565b91505092915050565b600080fd5b600067ffffffffffffffff821115612aa457612aa3612941565b5b612aad82612858565b9050602081019050919050565b82818337600083830152505050565b6000612adc612ad784612a89565b6129a1565b905082815260208101848484011115612af857612af7612a84565b5b612b03848285612aba565b509392505050565b600082601f830112612b2057612b1f61293c565b5b8135612b30848260208601612ac9565b91505092915050565b600080600080600060a08688031215612b5557612b54612622565b5b6000612b6388828901612675565b9550506020612b7488828901612675565b945050604086013567ffffffffffffffff811115612b9557612b94612627565b5b612ba188828901612a56565b935050606086013567ffffffffffffffff811115612bc257612bc1612627565b5b612bce88828901612a56565b925050608086013567ffffffffffffffff811115612bef57612bee612627565b5b612bfb88828901612b0b565b9150509295509295909350565b600060208284031215612c1e57612c1d612622565b5b6000612c2c84828501612675565b91505092915050565b600067ffffffffffffffff821115612c5057612c4f612941565b5b602082029050602081019050919050565b6000612c74612c6f84612c35565b6129a1565b90508083825260208201905060208402830185811115612c9757612c966129e8565b5b835b81811015612cc05780612cac8882612675565b845260208401935050602081019050612c99565b5050509392505050565b600082601f830112612cdf57612cde61293c565b5b8135612cef848260208601612c61565b91505092915050565b60008060408385031215612d0f57612d0e612622565b5b600083013567ffffffffffffffff811115612d2d57612d2c612627565b5b612d3985828601612cca565b925050602083013567ffffffffffffffff811115612d5a57612d59612627565b5b612d6685828601612a56565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612da58161268a565b82525050565b6000612db78383612d9c565b60208301905092915050565b6000602082019050919050565b6000612ddb82612d70565b612de58185612d7b565b9350612df083612d8c565b8060005b83811015612e21578151612e088882612dab565b9750612e1383612dc3565b925050600181019050612df4565b5085935050505092915050565b60006020820190508181036000830152612e488184612dd0565b905092915050565b600080600060608486031215612e6957612e68612622565b5b6000612e7786828701612675565b935050602084013567ffffffffffffffff811115612e9857612e97612627565b5b612ea486828701612a56565b925050604084013567ffffffffffffffff811115612ec557612ec4612627565b5b612ed186828701612a56565b9150509250925092565b6000602082019050612ef06000830184612904565b92915050565b612eff816127af565b8114612f0a57600080fd5b50565b600081359050612f1c81612ef6565b92915050565b60008060408385031215612f3957612f38612622565b5b6000612f4785828601612675565b9250506020612f5885828601612f0d565b9150509250929050565b600067ffffffffffffffff821115612f7d57612f7c612941565b5b612f8682612858565b9050602081019050919050565b6000612fa6612fa184612f62565b6129a1565b905082815260208101848484011115612fc257612fc1612a84565b5b612fcd848285612aba565b509392505050565b600082601f830112612fea57612fe961293c565b5b8135612ffa848260208601612f93565b91505092915050565b6000806000806080858703121561301d5761301c612622565b5b600061302b87828801612675565b945050602061303c878288016126ab565b935050604061304d878288016126ab565b925050606085013567ffffffffffffffff81111561306e5761306d612627565b5b61307a87828801612fd5565b91505092959194509250565b6000806040838503121561309d5761309c612622565b5b60006130ab85828601612675565b92505060206130bc85828601612675565b9150509250929050565b600080600080600060a086880312156130e2576130e1612622565b5b60006130f088828901612675565b955050602061310188828901612675565b9450506040613112888289016126ab565b9350506060613123888289016126ab565b925050608086013567ffffffffffffffff81111561314457613143612627565b5b61315088828901612b0b565b9150509295509295909350565b60008060006060848603121561317657613175612622565b5b600061318486828701612675565b9350506020613195868287016126ab565b92505060406131a6868287016126ab565b9150509250925092565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321d57607f821691505b6020821081036132305761322f6131d6565b5b50919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461326381613205565b61326d8186613236565b94506001821660008114613288576001811461329d576132d0565b60ff19831686528115158202860193506132d0565b6132a685613241565b60005b838110156132c8578154818901526001820191506020810190506132a9565b838801955050505b50505092915050565b60006132e4826131b0565b601d820191506132f48284613256565b915081905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006133398261268a565b91506133448361268a565b92508282026133528161268a565b91508282048414831517613369576133686132ff565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133aa8261268a565b91506133b58361268a565b9250826133c5576133c4613370565b5b828204905092915050565b60006040820190506133e56000830185612904565b6133f26020830184612904565b9392505050565b600060408201905061340e6000830185612700565b61341b6020830184612700565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020601f8301049050919050565b600082821b905092915050565b60006008830261349e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613461565b6134a88683613461565b95508019841693508086168417925050509392505050565b6000819050919050565b60006134e56134e06134db8461268a565b6134c0565b61268a565b9050919050565b6000819050919050565b6134ff836134ca565b61351361350b826134ec565b84845461346e565b825550505050565b600090565b61352861351b565b6135338184846134f6565b505050565b5b818110156135575761354c600082613520565b600181019050613539565b5050565b601f82111561359c5761356d81613241565b61357684613451565b81016020851015613585578190505b61359961359185613451565b830182613538565b50505b505050565b600082821c905092915050565b60006135bf600019846008026135a1565b1980831691505092915050565b60006135d883836135ae565b9150826002028217905092915050565b6135f182612812565b67ffffffffffffffff81111561360a57613609612941565b5b6136148254613205565b61361f82828561355b565b600060209050601f8311600181146136525760008415613640578287015190505b61364a85826135cc565b8655506136b2565b601f19841661366086613241565b60005b8281101561368857848901518255600182019150602085019450602081019050613663565b868310156136a557848901516136a1601f8916826135ae565b8355505b6001600288020188555050505b505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c0000000000815250565b7f7b00000000000000000000000000000000000000000000000000000000000000815250565b7f226e616d65223a22436172626f6e5468696e6b2054434f32222c000000000000815250565b7f226465736372697074696f6e223a22436172626f6e5468696e6b2054434f322060008201527f746f6b656e7320636f6c6c656374696f6e2e222c000000000000000000000000602082015250565b6000613788603483613236565b91506137938261372c565b603482019050919050565b7f2265787465726e616c5f6c696e6b223a2268747470733a2f2f616c7972612d6360008201527f6172626f6e7468696e6b2e76657263656c2e6170702f222c0000000000000000602082015250565b60006137fa603883613236565b91506138058261379e565b603882019050919050565b7f22696d6167655f64617461223a22000000000000000000000000000000000000815250565b600061384182612812565b61384b8185613236565b935061385b81856020860161282e565b80840191505092915050565b7f2200000000000000000000000000000000000000000000000000000000000000815250565b7f7d00000000000000000000000000000000000000000000000000000000000000815250565b60006138be826136ba565b601b820191506138cd826136e0565b6001820191506138dc82613706565b601a820191506138eb8261377b565b91506138f6826137ed565b915061390182613810565b600e820191506139118284613836565b915061391c82613867565b60018201915061392b8261388d565b60018201915081905092915050565b60006139458261268a565b91506139508361268a565b9250828201905080821115613968576139676132ff565b5b92915050565b60006139798261268a565b91506139848361268a565b925082820390508181111561399c5761399b6132ff565b5b92915050565b600081519050919050565b600082825260208201905092915050565b60006139c9826139a2565b6139d381856139ad565b93506139e381856020860161282e565b6139ec81612858565b840191505092915050565b600060a082019050613a0c6000830188612904565b613a196020830187612904565b613a266040830186612700565b613a336060830185612700565b8181036080830152613a4581846139be565b90509695505050505050565b600081519050613a6081612756565b92915050565b600060208284031215613a7c57613a7b612622565b5b6000613a8a84828501613a51565b91505092915050565b600060a082019050613aa86000830188612904565b613ab56020830187612904565b8181036040830152613ac78186612dd0565b90508181036060830152613adb8185612dd0565b90508181036080830152613aef81846139be565b90509695505050505050565b6000608082019050613b106000830187612904565b613b1d6020830186612700565b613b2a6040830185612700565b613b376060830184612700565b95945050505050565b60006040820190508181036000830152613b5a8185612dd0565b90508181036020830152613b6e8184612dd0565b9050939250505056fe646174613a696d6167652f7376672b786d6c3b757466382c3c73766720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667272077696474683d2735303027206865696768743d27353030272076696577426f783d27302030203234203234272066696c6c3d27677265656e27207374726f6b653d272330303430303027207374726f6b652d77696474683d273227207374726f6b652d6c696e656361703d27726f756e6427207374726f6b652d6c696e656a6f696e3d27726f756e64273e3c7061746820643d274d31312032304137203720302030203120392e3820362e314331352e35203520313720342e3438203139203263312032203220342e313820322038203020352e352d342e37382031302d31302031305a273e3c2f706174683e3c7061746820643d274d3220323163302d3320312e38352d352e333620352e30382d3643392e352031342e3532203132203133203133203132273e3c2f706174683e3c2f7376673ea264697066735822122096945a46512a8b5404c93d2171ae6c293d45e716a09b56fa6bdce500e5c4194364736f6c634300081800330000000000000000000000009de68f12bdf4c31b0507cfdfb80cdbf3659525440000000000000000000000009de68f12bdf4c31b0507cfdfb80cdbf365952544