[ { "inputs": [ { "internalType": "contract IPyramid", "name": "_pyramid", "type": "address" }, { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "contract ILiquidityPoolManager", "name": "_lpManager", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "PermissionDenied", "type": "error" }, { "inputs": [], "name": "PyramidDoesNotExist", "type": "error" }, { "inputs": [], "name": "ZeroAddressError", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "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": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pyramidId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" } ], "name": "Cashout", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256[]", "name": "affectedPyramids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256", "name": "rewardAmount", "type": "uint256" } ], "name": "CashoutAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "pyramidId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountToCompound", "type": "uint256" } ], "name": "Compound", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256[]", "name": "affectedPyramids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256", "name": "amountToCompound", "type": "uint256" } ], "name": "CompoundAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "newPyramidId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Create", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256[]", "name": "pyramidIds", "type": "uint256[]" }, { "indexed": true, "internalType": "string", "name": "name", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "previousTotalValue", "type": "uint256" } ], "name": "Merge", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "string", "name": "previousName", "type": "string" }, { "indexed": true, "internalType": "string", "name": "newName", "type": "string" } ], "name": "Rename", "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": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldImplementation", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "UpdateLiquidityPoolManager", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burnedFromMerging", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "burnedFromRenaming", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "calculateTotalDailyEmission", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cashoutAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pyramidId", "type": "uint256" } ], "name": "cashoutReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_compoundDelay", "type": "uint256" } ], "name": "changeCompoundDelay", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_creationMinPrice", "type": "uint256" } ], "name": "changeNodeMinPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_fee", "type": "uint256" } ], "name": "changeProcessingFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "level", "type": "uint32" }, { "internalType": "uint32", "name": "slope", "type": "uint32" }, { "internalType": "uint32", "name": "dailyAPR", "type": "uint32" }, { "internalType": "uint32", "name": "claimFee", "type": "uint32" }, { "internalType": "uint32", "name": "claimBurnFee", "type": "uint32" }, { "internalType": "uint32", "name": "compoundFee", "type": "uint32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" } ], "internalType": "struct Tier[4]", "name": "_tiers", "type": "tuple[4]" } ], "name": "changeTiers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "compoundAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "compoundDelay", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pyramidId", "type": "uint256" } ], "name": "compoundReward", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "pyramidName", "type": "string" }, { "internalType": "uint256", "name": "pyramidValue", "type": "uint256" } ], "name": "createPyramidWithTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "creationMinPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLiquidityPoolManagerImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getPyramidIdsOf", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPyramidImplementation", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_pyramidIds", "type": "uint256[]" } ], "name": "getPyramidsByIds", "outputs": [ { "components": [ { "components": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "uint256", "name": "creationTime", "type": "uint256" }, { "internalType": "uint256", "name": "lastProcessingTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "rewardMult", "type": "uint256" }, { "internalType": "uint256", "name": "pyramidValue", "type": "uint256" }, { "internalType": "uint256", "name": "totalClaimed", "type": "uint256" }, { "internalType": "bool", "name": "exists", "type": "bool" }, { "internalType": "bool", "name": "isMerged", "type": "bool" } ], "internalType": "struct PyramidEntity", "name": "pyramid", "type": "tuple" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "pendingRewards", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerDay", "type": "uint256" }, { "internalType": "uint256", "name": "compoundDelay", "type": "uint256" }, { "internalType": "uint256", "name": "pendingRewardsGross", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerDayGross", "type": "uint256" } ], "internalType": "struct PyramidInfoEntity[]", "name": "", "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "mult", "type": "uint256" } ], "name": "getTier", "outputs": [ { "components": [ { "internalType": "uint32", "name": "level", "type": "uint32" }, { "internalType": "uint32", "name": "slope", "type": "uint32" }, { "internalType": "uint32", "name": "dailyAPR", "type": "uint32" }, { "internalType": "uint32", "name": "claimFee", "type": "uint32" }, { "internalType": "uint32", "name": "claimBurnFee", "type": "uint32" }, { "internalType": "uint32", "name": "compoundFee", "type": "uint32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" } ], "internalType": "struct Tier", "name": "", "type": "tuple" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "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": "_pyramidId", "type": "uint256" } ], "name": "isApprovedOrOwnerOfPyramid", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "string", "name": "pyramidName", "type": "string" } ], "name": "isNameAvailable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "isOwnerOfPyramids", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_pyramidIds", "type": "uint256[]" }, { "internalType": "string", "name": "pyramidName", "type": "string" } ], "name": "mergePyramids", "outputs": [], "stateMutability": "nonpayable", "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": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "processingFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "recoverLostAVAX", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "recoverLostTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_pyramidId", "type": "uint256" }, { "internalType": "string", "name": "pyramidName", "type": "string" } ], "name": "renamePyramid", "outputs": [], "stateMutability": "nonpayable", "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": "tokenId", "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": "tokenId", "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": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setTokenRoyalty", "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": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tiers", "outputs": [ { "internalType": "uint32", "name": "level", "type": "uint32" }, { "internalType": "uint32", "name": "slope", "type": "uint32" }, { "internalType": "uint32", "name": "dailyAPR", "type": "uint32" }, { "internalType": "uint32", "name": "claimFee", "type": "uint32" }, { "internalType": "uint32", "name": "claimBurnFee", "type": "uint32" }, { "internalType": "uint32", "name": "compoundFee", "type": "uint32" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "imageURI", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "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": [], "name": "totalValueLocked", "outputs": [ { "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": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "whitelist", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "pyramidName", "type": "string" }, { "internalType": "uint256", "name": "pyramidValue", "type": "uint256" }, { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "tierLevel", "type": "uint256" } ], "name": "whitelistCreatePyramidWithTokens", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162006c1138038062006c11833981016040819052620000349162000a15565b604080518082018252600d81526c507972616d6964204d6f6e657960981b6020808301918252835180850190945260078452661414935113919560ca1b908401528151919291620000889160029162000956565b5080516200009e90600390602084019062000956565b5050600c805460ff1916905550620000b633620003ad565b6001600d556001600160a01b038316620000e357604051633efa09af60e01b815260040160405180910390fd5b600e80546001600160a01b038086166001600160a01b03199283161790925560268054858416908316179055600f8054928416929091169190911790556200013569021e19e0c9bab240000062000407565b6200014261a8c0620004d9565b6200014e600262000598565b600060405180606001604052806036815260200162006bdb6036913960408051610180810182526107d0608082019081526101f460a0830152600f60c0830152605060e083015260006101008301819052602861012084015283518085018552600681526542726f6e7a6560d01b60208281019190915261014085019190915293519495509391928392610160840191620001ec9188910162000aa7565b60408051601f198184030181529181529152908252805161010081018252610fa081526101f46020828101919091526014828401819052602860608401526000608084015260a083015282518084018452600681526529b4b63b32b960d11b8183015260c0830152915192820192909160e08301916200026f9188910162000acf565b60408051601f198184030181529181529152908252805161010081018252611f4081526101f46020828101919091526019828401526014606083015260006080830152600a60a083015282518084018452600481526311dbdb1960e21b8183015260c0830152915192820192909160e0830191620002f09188910162000af7565b60408051601f198184030181529181529152908252805161010081018252613e80815260006020828101829052601e83850152600a60608401526080830182905260a0830191909152825180840184526007815266111a585b5bdb9960ca1b8183015260c0830152915192820192909160e0830191620003739188910162000b1d565b60408051601f19818403018152919052905290529050620003948162000650565b620003a2336109c4620007fe565b505050505062000bc3565b600c80546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600c546001600160a01b036101009091041633146200045c5760405162461bcd60e51b8152602060048201819052602482015260008051602062006bbb83398151915260448201526064015b60405180910390fd5b60008111620004d45760405162461bcd60e51b815260206004820152603b60248201527f507972616d6964733a204d696e696d756d20707269636520746f20637265617460448201527f65206120507972616d6964206d7573742062652061626f766520300000000000606482015260840162000453565b601455565b600c546001600160a01b036101009091041633146200052a5760405162461bcd60e51b8152602060048201819052602482015260008051602062006bbb833981519152604482015260640162000453565b60008111620005935760405162461bcd60e51b815260206004820152602e60248201527f507972616d6964733a20636f6d706f756e6444656c6179206d7573742062652060448201526d067726561746572207468616e20360941b606482015260840162000453565b601555565b600c546001600160a01b03610100909104163314620005e95760405162461bcd60e51b8152602060048201819052602482015260008051602062006bbb833981519152604482015260640162000453565b606481106200064b5760405162461bcd60e51b815260206004820152602760248201527f507972616d6964733a2050726f63657373696e67204665652063616e6e6f74206044820152666265203130302560c81b606482015260840162000453565b601655565b600c546001600160a01b03610100909104163314620006a15760405162461bcd60e51b8152602060048201819052602482015260008051602062006bbb833981519152604482015260640162000453565b60005b6004811015620007fa57818160048110620006c357620006c362000b46565b602002015160178260048110620006de57620006de62000b46565b825160039190910291909101805460208085015160408601516060870151608088015160a089015163ffffffff9889166001600160401b0319909716969096176401000000009489169490940293909317600160401b600160801b031916680100000000000000009288169290920263ffffffff60601b1916919091176c010000000000000000000000009187169190910217600160801b600160c01b031916600160801b9186169190910263ffffffff60a01b191617600160a01b949092169390930217815560c083015180519192620007c29260018501929091019062000956565b5060e08201518051620007e091600284019160209091019062000956565b509050508080620007f19062000b5c565b915050620006a4565b5050565b600c546001600160a01b036101009091041633146200084f5760405162461bcd60e51b8152602060048201819052602482015260008051602062006bbb833981519152604482015260640162000453565b620007fa82826127106001600160601b0382161115620008c55760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b606482015260840162000453565b6001600160a01b0382166200091d5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000453565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b828054620009649062000b86565b90600052602060002090601f016020900481019282620009885760008555620009d3565b82601f10620009a357805160ff1916838001178555620009d3565b82800160010185558215620009d3579182015b82811115620009d3578251825591602001919060010190620009b6565b50620009e1929150620009e5565b5090565b5b80821115620009e15760008155600101620009e6565b6001600160a01b038116811462000a1257600080fd5b50565b60008060006060848603121562000a2b57600080fd5b835162000a3881620009fc565b602085015190935062000a4b81620009fc565b604085015190925062000a5e81620009fc565b809150509250925092565b6000815160005b8181101562000a8c576020818501810151868301520162000a70565b8181111562000a9c576000828601525b509290920192915050565b600062000ab5828462000a69565b6962726f6e7a652e6a706760b01b8152600a019392505050565b600062000add828462000a69565b6973696c7665722e6a706760b01b8152600a019392505050565b600062000b05828462000a69565b67676f6c642e6a706760c01b81526008019392505050565b600062000b2b828462000a69565b6a6469616d6f6e642e6a706760a81b8152600b019392505050565b634e487b7160e01b600052603260045260246000fd5b600060001982141562000b7f57634e487b7160e01b600052601160045260246000fd5b5060010190565b600181811c9082168062000b9b57607f821691505b6020821081141562000bbd57634e487b7160e01b600052602260045260246000fd5b50919050565b615fe88062000bd36000396000f3fe608060405234801561001057600080fd5b50600436106103785760003560e01c80636707accb116101d3578063b629a8f211610104578063de1881a8116100a2578063ea5103241161007c578063ea5103241461076d578063ec18154e14610780578063f25eb93514610789578063f2fde38b146107a957600080fd5b8063de1881a81461071f578063dfe59ed414610728578063e985e9c51461073157600080fd5b8063c87b56dd116100de578063c87b56dd146106df578063cce222c5146106f2578063d25e336914610703578063da0d75a61461070c57600080fd5b8063b629a8f214610699578063b88d4fde146106ac578063ba2b4198146106bf57600080fd5b80638da5cb5b1161017157806395d89b411161014b57806395d89b411461066e5780639b05ddb314610676578063a22cb4651461067e578063a647c9ff1461069157600080fd5b80638da5cb5b1461063c57806393399b7e1461065257806393e59dc11461065b57600080fd5b80638005f735116101ad5780638005f735146106085780638456cb591461061b5780638504565b146106235780638d934ed01461062b57600080fd5b80636707accb146105da57806370a08231146105ed578063715018a61461060057600080fd5b80632f745c59116102ad578063545579731161024b5780635c975abb116102255780635c975abb1461059657806361dec354146105a15780636352211e146105b457806365bfe430146105c757600080fd5b8063545579731461056857806356cd92ef146105705780635944c7531461058357600080fd5b80634060e257116102875780634060e2571461050e57806342842e0e146105215780634f062c5a146105345780634f6ccce71461055557600080fd5b80632f745c59146104e05780633e173068146104f35780633f4ba83a1461050657600080fd5b80632159d5021161031a57806328d84e6b116102f457806328d84e6b146104755780632a55205a146104885780632a5d52a8146104ba5780632c6fa4e2146104cd57600080fd5b80632159d5021461044657806321fa7e291461045957806323b872dd1461046257600080fd5b806306fdde031161035657806306fdde03146103e1578063081812fc146103f6578063095ea7b31461042157806318160ddd1461043457600080fd5b806301ffc9a71461037d578063039af9eb146103a557806304634d8d146103cc575b600080fd5b61039061038b366004614f5a565b6107bc565b60405190151581526020015b60405180910390f35b6103b86103b3366004614f77565b6107cd565b60405161039c989796959493929190614fe8565b6103df6103da366004615088565b610943565b005b6103e961098a565b60405161039c91906150bb565b610409610404366004614f77565b610a1c565b6040516001600160a01b03909116815260200161039c565b6103df61042f3660046150ce565b610ab1565b600a545b60405190815260200161039c565b6103df610454366004615214565b610bc7565b61043860145481565b6103df61047036600461536a565b610d3c565b6104386104833660046153a6565b610d6d565b61049b6104963660046153ea565b610e03565b604080516001600160a01b03909316835260208301919091520161039c565b6103906104c836600461540c565b610eaf565b6103df6104db3660046154d8565b61103a565b6104386104ee3660046150ce565b611658565b610438610501366004615531565b6116ee565b6103df6117d6565b6103df61051c366004614f77565b611810565b6103df61052f36600461536a565b611a24565b610547610542366004614f77565b611a3f565b60405161039c92919061558f565b610438610563366004614f77565b611c4e565b6103df611ce1565b6103df61057e36600461564b565b611e68565b6103df61059136600461567b565b61213b565b600c5460ff16610390565b6103df6105af36600461536a565b612176565b6104096105c2366004614f77565b61221f565b6103df6105d5366004614f77565b612296565b6103906105e83660046150ce565b6123e7565b6104386105fb3660046156b7565b6123fa565b6103df612481565b6103df610616366004614f77565b6124bb565b6103df612566565b61043861259e565b600e546001600160a01b0316610409565b600c5461010090046001600160a01b0316610409565b61043860155481565b602654610409906001600160a01b031681565b6103e9612645565b6103df612654565b6103df61068c3660046156e0565b612906565b6103df612911565b6103df6106a7366004614f77565b612984565b6103df6106ba366004615717565b612a19565b6106d26106cd3660046156b7565b612a4b565b60405161039c9190615792565b6103e96106ed366004614f77565b612b53565b600f546001600160a01b0316610409565b61043860255481565b6103df61071a366004614f77565b612d08565b61043860165481565b61043860245481565b61039061073f3660046157d6565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b61039061077b3660046156b7565b612da4565b61043860235481565b61079c610797366004615800565b612db7565b60405161039c9190615834565b6103df6107b73660046156b7565b61301e565b60006107c7826130bc565b92915050565b601781600481106107dd57600080fd5b60030201805460018201805463ffffffff80841695506401000000008404811694600160401b8504821694600160601b8104831694600160801b8204841694600160a01b90920490931692906108329061595f565b80601f016020809104026020016040519081016040528092919081815260200182805461085e9061595f565b80156108ab5780601f10610880576101008083540402835291602001916108ab565b820191906000526020600020905b81548152906001019060200180831161088e57829003601f168201915b5050505050908060020180546108c09061595f565b80601f01602080910402602001604051908101604052809291908181526020018280546108ec9061595f565b80156109395780601f1061090e57610100808354040283529160200191610939565b820191906000526020600020905b81548152906001019060200180831161091c57829003601f168201915b5050505050905088565b600c546001600160a01b0361010090910416331461097c5760405162461bcd60e51b815260040161097390615994565b60405180910390fd5b61098682826130c7565b5050565b6060600280546109999061595f565b80601f01602080910402602001604051908101604052809291908181526020018280546109c59061595f565b8015610a125780601f106109e757610100808354040283529160200191610a12565b820191906000526020600020905b8154815290600101906020018083116109f557829003601f168201915b5050505050905090565b6000818152600460205260408120546001600160a01b0316610a955760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610973565b506000908152600660205260409020546001600160a01b031690565b6000610abc8261221f565b9050806001600160a01b0316836001600160a01b03161415610b2a5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610973565b336001600160a01b0382161480610b465750610b46813361073f565b610bb85760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610973565b610bc28383613181565b505050565b600c546001600160a01b03610100909104163314610bf75760405162461bcd60e51b815260040161097390615994565b60005b600481101561098657818160048110610c1557610c156159c9565b602002015160178260048110610c2d57610c2d6159c9565b825160039190910291909101805460208085015160408601516060870151608088015160a089015163ffffffff98891667ffffffffffffffff199097169690961764010000000094891694909402939093176fffffffffffffffff00000000000000001916600160401b9288169290920263ffffffff60601b191691909117600160601b918716919091021767ffffffffffffffff60801b1916600160801b9186169190910263ffffffff60a01b191617600160a01b949092169390930217815560c083015180519192610d0992600185019290910190614dd7565b5060e08201518051610d25916002840191602090910190614dd7565b509050508080610d34906159f5565b915050610bfa565b610d4633826131ef565b610d625760405162461bcd60e51b815260040161097390615a10565b610bc28383836132e6565b60006002600d541415610d925760405162461bcd60e51b815260040161097390615a61565b6002600d55600c5460ff1615610dba5760405162461bcd60e51b815260040161097390615a98565b8260018151118015610dcd575060208151105b610de95760405162461bcd60e51b815260040161097390615ac2565b610df6338585600061348d565b6001600d55949350505050565b60008281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610e785750604080518082019091526000546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610e97906001600160601b031687615b1f565b610ea19190615b54565b915196919550909350505050565b600080610ebb84612a4b565b905060005b815181101561102f57600060116000848481518110610ee157610ee16159c9565b602002602001015181526020019081526020016000206040518061012001604052908160008201548152602001600182018054610f1d9061595f565b80601f0160208091040260200160405190810160405280929190818152602001828054610f499061595f565b8015610f965780601f10610f6b57610100808354040283529160200191610f96565b820191906000526020600020905b815481529060010190602001808311610f7957829003601f168201915b50505091835250506002820154602080830191909152600383015460408301526004830154606083015260058301546080830152600683015460a083015260079092015460ff808216151560c084015261010090910416151560e090910152865187820120828201518051920191909120919250141561101c57600093505050506107c7565b5080611027816159f5565b915050610ec0565b506001949350505050565b6002600d54141561105d5760405162461bcd60e51b815260040161097390615a61565b6002600d55338061108157604051633efa09af60e01b815260040160405180910390fd5b61108a81612da4565b6110a757604051630782484160e21b815260040160405180910390fd5b823360005b8251811015611146576110d78382815181106110ca576110ca6159c9565b602002602001015161381f565b6110f457604051631515609760e11b815260040160405180910390fd5b6111178284838151811061110a5761110a6159c9565b60200260200101516123e7565b61113457604051630782484160e21b815260040160405180910390fd5b8061113e816159f5565b9150506110ac565b50600c5460ff161561116a5760405162461bcd60e51b815260040161097390615a98565b836001815111801561117d575060208151105b6111995760405162461bcd60e51b815260040161097390615ac2565b8551339060011061122f5760405162461bcd60e51b815260206004820152605460248201527f507972616d6964734d616e616765723a204174206c656173742032205079726160448201527f6d696473206d7573742062652073656c656374656420696e206f7264657220666064820152736f7220746865206d6572676520746f20776f726b60601b608482015260a401610973565b60008060005b8951811015611479576000601160008c8481518110611256576112566159c9565b6020026020010151815260200190815260200160002090506113718160405180610120016040529081600082015481526020016001820180546112989061595f565b80601f01602080910402602001604051908101604052809291908181526020018280546112c49061595f565b80156113115780601f106112e657610100808354040283529160200191611311565b820191906000526020600020905b8154815290600101906020018083116112f457829003601f168201915b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a082015260079091015460ff808216151560c084015261010090910416151560e0909101526139aa565b6114185760405162461bcd60e51b815260206004820152606660248201527f507972616d6964734d616e616765723a20466f72207468652070726f6365737360448201527f20746f20776f726b2c20616c6c2073656c656374656420707972616d6964732060648201527f6d75737420626520636f6d706f756e6461626c652e2054727920616761696e206084820152653630ba32b91760d11b60a482015260c401610973565b805461142390611810565b836114345780600401549350611448565b806004015484111561144857806004015493505b60058101546114579084615b68565b925061146681600001546139c7565b5080611471816159f5565b915050611235565b5060175463ffffffff168210156114ef5760405162461bcd60e51b815260206004820152603460248201527f507972616d6964734d616e616765723a20536f6d657468696e672077656e742060448201527377726f6e6720776974682074686520746965727360601b6064820152608401610973565b6000806114fe836016546139d0565b9150915080602560008282546115149190615b68565b9091555050600e54604051639b5f7c6560e01b81526001600160a01b0387811660048301526024820185905290911690639b5f7c6590604401600060405180830381600087803b15801561156757600080fd5b505af115801561157b573d6000803e3d6000fd5b50505050600061158b8b84610d6d565b600081815260116020526040902060078101805461ff0019166101001790556017549192509063ffffffff1686146115ef576115d8816004015482600501546115d390615b80565b613a07565b6004810186905560058101546115ef908790613a07565b848c6040516115fe9190615bb9565b60405180910390208e6040516116149190615bd5565b604051908190038120907fd8ebfeebb050ae0645e12687d48419c0aef0d19fca90d7a2e73826885bb9f90d90600090a450506001600d555050505050505050505050565b6000611663836123fa565b82106116c55760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610973565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b60006002600d5414156117135760405162461bcd60e51b815260040161097390615a61565b6002600d55600c5460ff161561173b5760405162461bcd60e51b815260040161097390615a98565b846001815111801561174e575060208151105b61176a5760405162461bcd60e51b815260040161097390615ac2565b338061178957604051633efa09af60e01b815260040160405180910390fd5b6026546001600160a01b038281169116146117b757604051630782484160e21b815260040160405180910390fd5b60006117c58689898861348d565b6001600d5598975050505050505050565b600c546001600160a01b036101009091041633146118065760405162461bcd60e51b815260040161097390615994565b61180e613bb6565b565b6002600d5414156118335760405162461bcd60e51b815260040161097390615a61565b6002600d55338061185757604051633efa09af60e01b815260040160405180910390fd5b61186081612da4565b61187d57604051630782484160e21b815260040160405180910390fd5b81336118888261381f565b6118a557604051631515609760e11b815260040160405180910390fd5b6118af81836123e7565b6118cc57604051630782484160e21b815260040160405180910390fd5b600c5460ff16156118ef5760405162461bcd60e51b815260040161097390615a98565b336000806118fc87613c49565b915091506000821161196d5760405162461bcd60e51b815260206004820152603460248201527f507972616d6964733a20596f75206d757374207761697420756e74696c20796f6044820152733a9031b0b71031b7b6b837bab7321030b3b0b4b760611b6064820152608401610973565b80156119d257600e5460405163d02dd2b360e01b8152600481018390526001600160a01b039091169063d02dd2b390602401600060405180830381600087803b1580156119b957600080fd5b505af11580156119cd573d6000803e3d6000fd5b505050505b86836001600160a01b03167f0e311a2c6dbfb0153ec3a8a5bdca09070b3e5f60768fdc10a20453f38d18687384604051611a0e91815260200190565b60405180910390a350506001600d555050505050565b610bc283838360405180602001604052806000815250612a19565b611a47614e5b565b6000611a51614e5b565b6000611a5f60016004615c0b565b90505b60008112611c435760178160048110611a7d57611a7d6159c9565b604080516101008101825260039290920292909201805463ffffffff8082168452640100000000820481166020850152600160401b8204811694840194909452600160601b810484166060840152600160801b810484166080840152600160a01b900490921660a082015260018201805491929160c084019190611b009061595f565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2c9061595f565b8015611b795780601f10611b4e57610100808354040283529160200191611b79565b820191906000526020600020905b815481529060010190602001808311611b5c57829003601f168201915b50505050508152602001600282018054611b929061595f565b80601f0160208091040260200160405190810160405280929190818152602001828054611bbe9061595f565b8015611c0b5780601f10611be057610100808354040283529160200191611c0b565b820191906000526020600020905b815481529060010190602001808311611bee57829003601f168201915b5050505050815250509150816000015163ffffffff168510611c31579094909350915050565b80611c3b81615c22565b915050611a62565b509360009350915050565b6000611c59600a5490565b8210611cbc5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610973565b600a8281548110611ccf57611ccf6159c9565b90600052602060002001549050919050565b6002600d541415611d045760405162461bcd60e51b815260040161097390615a61565b6002600d553380611d2857604051633efa09af60e01b815260040160405180910390fd5b611d3181612da4565b611d4e57604051630782484160e21b815260040160405180910390fd5b600c5460ff1615611d715760405162461bcd60e51b815260040161097390615a98565b336000808080611d8085612a4b565b905060005b8151811015611df6576000806000611db5858581518110611da857611da86159c9565b6020026020010151613e71565b91945092509050611dc68389615b68565b9750611dd28288615b68565b9650611dde8187615b68565b95505050508080611dee906159f5565b915050611d85565b50611e02848484613fe7565b80604051611e109190615bd5565b6040518091039020856001600160a01b03167fb19b49535c30c050254f8a50fbb3d50f125497777abe768053959123e48f1baf86604051611e5391815260200190565b60405180910390a350506001600d5550505050565b6002600d541415611e8b5760405162461bcd60e51b815260040161097390615a61565b6002600d553380611eaf57604051633efa09af60e01b815260040160405180910390fd5b611eb881612da4565b611ed557604051630782484160e21b815260040160405180910390fd5b8233611ee08261381f565b611efd57604051631515609760e11b815260040160405180910390fd5b611f0781836123e7565b611f2457604051630782484160e21b815260040160405180910390fd5b600c5460ff1615611f475760405162461bcd60e51b815260040161097390615a98565b8360018151118015611f5a575060208151105b611f765760405162461bcd60e51b815260040161097390615ac2565b60008681526011602052604090206005810154339190611fd85760405162461bcd60e51b815260206004820152601760248201527f4572726f723a20507972616d696420697320656d7074790000000000000000006044820152606401610973565b600080611feb83600501546016546139d0565b915091506120018360040154826115d390615b80565b80602460008282546120139190615b68565b909155505060058301829055600183018054600091906120329061595f565b80601f016020809104026020016040519081016040528092919081815260200182805461205e9061595f565b80156120ab5780601f10612080576101008083540402835291602001916120ab565b820191906000526020600020905b81548152906001019060200180831161208e57829003601f168201915b50508d519394506120c99360018901935060208f0192509050614dd7565b50896040516120d89190615bb9565b6040518091039020816040516120ee9190615bb9565b604051908190038120906001600160a01b038816907f0d48d45af1b1b964a93dad6fe3f832865a8b610c6364bd1850790e2c74e535ce90600090a450506001600d55505050505050505050565b600c546001600160a01b0361010090910416331461216b5760405162461bcd60e51b815260040161097390615994565b610bc2838383614192565b600c546001600160a01b036101009091041633146121a65760405162461bcd60e51b815260040161097390615994565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb906044016020604051808303816000875af11580156121f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122199190615c40565b50505050565b6000818152600460205260408120546001600160a01b0316806107c75760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610973565b6002600d5414156122b95760405162461bcd60e51b815260040161097390615a61565b6002600d5533806122dd57604051633efa09af60e01b815260040160405180910390fd5b6122e681612da4565b61230357604051630782484160e21b815260040160405180910390fd5b813361230e8261381f565b61232b57604051631515609760e11b815260040160405180910390fd5b61233581836123e7565b61235257604051630782484160e21b815260040160405180910390fd5b600c5460ff16156123755760405162461bcd60e51b815260040161097390615a98565b336000808061238388613e71565b925092509250612394838383613fe7565b87846001600160a01b03167f4f32a1005fcf45a64a68bc4258b4e0f5522b7aa6a06506781aa4e6c6395c48d0856040516123d091815260200190565b60405180910390a350506001600d55505050505050565b60006123f383836131ef565b9392505050565b60006001600160a01b0382166124655760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610973565b506001600160a01b031660009081526005602052604090205490565b600c546001600160a01b036101009091041633146124b15760405162461bcd60e51b815260040161097390615994565b61180e600061425d565b600c546001600160a01b036101009091041633146124eb5760405162461bcd60e51b815260040161097390615994565b600081116125615760405162461bcd60e51b815260206004820152603b60248201527f507972616d6964733a204d696e696d756d20707269636520746f20637265617460448201527f65206120507972616d6964206d7573742062652061626f7665203000000000006064820152608401610973565b601455565b600c546001600160a01b036101009091041633146125965760405162461bcd60e51b815260040161097390615994565b61180e6142b7565b600080805b60135481101561263f57600060126000601384815481106125c6576125c66159c9565b60009182526020808320909101548352828101939093526040918201902081516060810183528154808252600183015494820185905260029092015460ff1615159281019290925290925061261f91906201518061430f565b6126299084615b68565b9250508080612637906159f5565b9150506125a3565b50919050565b6060600380546109999061595f565b6002600d5414156126775760405162461bcd60e51b815260040161097390615a61565b6002600d55338061269b57604051633efa09af60e01b815260040160405180910390fd5b6126a481612da4565b6126c157604051630782484160e21b815260040160405180910390fd5b600c5460ff16156126e45760405162461bcd60e51b815260040161097390615a98565b33600080806126f284612a4b565b9050600081516001600160401b0381111561270f5761270f6150f8565b604051908082528060200260200182016040528015612738578160200160208202803683370190505b50905060005b82518110156127ff5760008061276c85848151811061275f5761275f6159c9565b6020026020010151613c49565b909250905081156127cb57848381518110612789576127896159c9565b60200260200101518484815181106127a3576127a36159c9565b60209081029190910101526127b88188615b68565b96506127c48287615b68565b95506127ea565b8383815181106127dd576127dd6159c9565b6020026020010160008152505b505080806127f7906159f5565b91505061273e565b50600083116128505760405162461bcd60e51b815260206004820181905260248201527f507972616d6964733a204e6f207265776172647320746f20636f6d706f756e646044820152606401610973565b83156128b557600e5460405163d02dd2b360e01b8152600481018690526001600160a01b039091169063d02dd2b390602401600060405180830381600087803b15801561289c57600080fd5b505af11580156128b0573d6000803e3d6000fd5b505050505b806040516128c39190615bd5565b6040518091039020856001600160a01b03167ff6fa3b3c4cc7c3050320415a19ca5bae8e2029684a976274a45e4165eedfcd9b85604051611e5391815260200190565b61098633838361436e565b600c546001600160a01b036101009091041633146129415760405162461bcd60e51b815260040161097390615994565b600c546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f19350505050158015612981573d6000803e3d6000fd5b50565b600c546001600160a01b036101009091041633146129b45760405162461bcd60e51b815260040161097390615994565b60648110612a145760405162461bcd60e51b815260206004820152602760248201527f507972616d6964733a2050726f63657373696e67204665652063616e6e6f74206044820152666265203130302560c81b6064820152608401610973565b601655565b612a2333836131ef565b612a3f5760405162461bcd60e51b815260040161097390615a10565b6122198484848461443d565b60606000612a58836123fa565b90506000816001600160401b03811115612a7457612a746150f8565b604051908082528060200260200182016040528015612a9d578160200160208202803683370190505b50905060005b82811015612b4b576000612ab78683611658565b9050612ac28161381f565b612b1a5760405162461bcd60e51b8152602060048201526024808201527f507972616d6964733a205468697320707972616d696420646f65736e277420656044820152631e1a5cdd60e21b6064820152608401610973565b80838381518110612b2d57612b2d6159c9565b60209081029190910101525080612b43816159f5565b915050612aa3565b509392505050565b600081815260116020908152604080832081516101208101909252805482526001810180546060959484019190612b899061595f565b80601f0160208091040260200160405190810160405280929190818152602001828054612bb59061595f565b8015612c025780601f10612bd757610100808354040283529160200191612c02565b820191906000526020600020905b815481529060010190602001808311612be557829003601f168201915b50505091835250506002820154602082015260038201546040820152600482015460608201526005820154608080830191909152600683015460a083015260079092015460ff808216151560c084015261010090910416151560e09091015281015190915060009081908190612c7790614470565b9250925092506000846020015182612c8e866144aa565b85612caf670de0b6b3a76400008a60a00151612caa9190615b54565b6144aa565b604051602001612cc3959493929190615c5d565b6040516020818303038152906040529050612cdd816145a7565b604051602001612ced9190615dbd565b60405160208183030381529060405295505050505050919050565b600c546001600160a01b03610100909104163314612d385760405162461bcd60e51b815260040161097390615994565b60008111612d9f5760405162461bcd60e51b815260206004820152602e60248201527f507972616d6964733a20636f6d706f756e6444656c6179206d7573742062652060448201526d067726561746572207468616e20360941b6064820152608401610973565b601555565b600080612db0836123fa565b1192915050565b6060600082516001600160401b03811115612dd457612dd46150f8565b604051908082528060200260200182016040528015612e0d57816020015b612dfa614ea1565b815260200190600190039081612df25790505b50905060005b8351811015613017576000848281518110612e3057612e306159c9565b602002602001015190506000601160008381526020019081526020016000206040518061012001604052908160008201548152602001600182018054612e759061595f565b80601f0160208091040260200160405190810160405280929190818152602001828054612ea19061595f565b8015612eee5780601f10612ec357610100808354040283529160200191612eee565b820191906000526020600020905b815481529060010190602001808311612ed157829003601f168201915b50505091835250506002820154602082015260038201546040820152600482015460608201526005820154608080830191909152600683015460a083015260079092015460ff808216151560c084015261010090910416151560e0909101528101519091506000908190612f61906146fa565b915091506000612f7084614727565b90506000612f7d8561474b565b90506000612f9483612f8f8688615b68565b6139d0565b5090506000612fa783612f8f8789615b68565b5090506040518060e001604052808881526020018981526020018381526020018281526020016015548152602001858152602001848152508a8a81518110612ff157612ff16159c9565b60200260200101819052505050505050505050808061300f906159f5565b915050612e13565b5092915050565b600c546001600160a01b0361010090910416331461304e5760405162461bcd60e51b815260040161097390615994565b6001600160a01b0381166130b35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610973565b6129818161425d565b60006107c782614763565b6127106001600160601b03821611156130f25760405162461bcd60e51b815260040161097390615e02565b6001600160a01b0382166131485760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610973565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b600081815260066020526040902080546001600160a01b0319166001600160a01b03841690811790915581906131b68261221f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152600460205260408120546001600160a01b03166132685760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610973565b60006132738361221f565b9050806001600160a01b0316846001600160a01b031614806132ae5750836001600160a01b03166132a384610a1c565b6001600160a01b0316145b806132de57506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166132f98261221f565b6001600160a01b03161461335d5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610973565b6001600160a01b0382166133bf5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610973565b6133ca838383614788565b6133d5600082613181565b6001600160a01b03831660009081526005602052604081208054600192906133fe908490615c0b565b90915550506001600160a01b038216600090815260056020526040812080546001929061342c908490615b68565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60006014548310156134f35760405162461bcd60e51b815260206004820152602960248201527f507972616d6964733a20507972616d69642076616c7565207365742062656c6f60448201526877206d696e696d756d60b81b6064820152608401610973565b6134fd8585610eaf565b6135495760405162461bcd60e51b815260206004820152601c60248201527f507972616d6964733a204e616d65206e6f7420617661696c61626c65000000006044820152606401610973565b600e546040516370a0823160e01b81526001600160a01b038781166004830152859216906370a0823190602401602060405180830381865afa158015613593573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135b79190615e4c565b10156136145760405162461bcd60e51b815260206004820152602660248201527f507972616d6964733a2042616c616e636520746f6f206c6f7720666f7220637260448201526532b0ba34b7b760d11b6064820152608401610973565b600e5460405163db0e185b60e01b81526001600160a01b038781166004830152602482018690529091169063db0e185b90604401600060405180830381600087803b15801561366257600080fd5b505af1158015613676573d6000803e3d6000fd5b50505050613688601080546001019055565b600061369360105490565b9050600042905084602360008282546136ac9190615b68565b909155506136d99050601785600481106136c8576136c86159c9565b600302015463ffffffff1686613a07565b60405180610120016040528083815260200187815260200182815260200182815260200160178660048110613710576137106159c9565b600302015463ffffffff16815260208082018890526000604080840182905260016060850181905260809094018290528682526011835290208351815583820151805191936137659390850192910190614dd7565b5060408201516002820155606082015160038201556080820151600482015560a0820151600582015560c0820151600682015560e0820151600790910180546101009384015161ffff1990911692151561ff001916929092179115159092021790556137d187836147b6565b81876001600160a01b03167f278b0fd0170e87df8d6e9c94b47d3ff7382de693c547e6089b53f9972c5323898760405161380d91815260200190565b60405180910390a35095945050505050565b600080821161387e5760405162461bcd60e51b815260206004820152602560248201527f507972616d6964733a204964206d75737420626520686967686572207468616e604482015264207a65726f60d81b6064820152608401610973565b60006011600084815260200190815260200160002060405180610120016040529081600082015481526020016001820180546138b99061595f565b80601f01602080910402602001604051908101604052809291908181526020018280546138e59061595f565b80156139325780601f1061390757610100808354040283529160200191613932565b820191906000526020600020905b81548152906001019060200180831161391557829003601f168201915b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a082015260079091015460ff808216151560c084015261010090910416151560e091820152810151909150156139a15750600192915050565b50600092915050565b600060155482606001516139be9190615b68565b42101592915050565b61298181614904565b6000808083156139f35760646139e68587615b1f565b6139f09190615b54565b90505b6139fd8186615c0b565b9590945092505050565b6000828152601260205260409020600281015460ff1615613aaa5780548314613a8d5760405162461bcd60e51b815260206004820152603260248201527f507972616d6964733a207265776172644d756c7420646f6573206e6f74206d6160448201527174636820696e205469657253746f7261676560701b6064820152608401610973565b6000828260010154613a9f9190615e65565b600183015550505050565b60008213613b3b5760405162461bcd60e51b815260206004820152605260248201527f507972616d6964733a20466174616c206572726f72207768696c65206372656160448201527f74696e67206e6577205469657253746f726167652e20416d6f756e742063616e6064820152713737ba103132903132b637bb903d32b9379760711b608482015260a401610973565b506040805160608101825283815260208082019384526001828401818152600087815260129093529382209251835593518285015591516002909101805460ff191691151591909117905560138054928301815590527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0900155565b600c5460ff16613bff5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610973565b600c805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000806000601160008581526020019081526020016000209050613c8d8160405180610120016040529081600082015481526020016001820180546112989061595f565b613c9d5750600093849350915050565b6000613da2826040518061012001604052908160008201548152602001600182018054613cc99061595f565b80601f0160208091040260200160405190810160405280929190818152602001828054613cf59061595f565b8015613d425780601f10613d1757610100808354040283529160200191613d42565b820191906000526020600020905b815481529060010190602001808311613d2557829003601f168201915b505050918352505060028201546020820152600382015460408201526004820154606082015260058201546080820152600682015460a082015260079091015460ff808216151560c084015261010090910416151560e090910152614727565b90508015613e64576000613db9836004015461491e565b9050600080613dc884846139d0565b915091508160236000828254613dde9190615b68565b92505081905550613dfb856004015486600501546115d390615b80565b42856003018190555081856005016000828254613e189190615b68565b90915550506004850154613e2b9061493c565b856004016000828254613e3e9190615b68565b92505081905550613e5785600401548660050154613a07565b9097909650945050505050565b5060009485945092505050565b600080600080601160008681526020019081526020016000209050613eb68160405180610120016040529081600082015481526020016001820180546112989061595f565b613ecb57600080600093509350935050613fe0565b6000613ef7826040518061012001604052908160008201548152602001600182018054613cc99061595f565b905080826006016000828254613f0d9190615b68565b92505081905550600080613f2484600401546146fa565b9092509050600080613f3a85612f8f8587615b68565b915091506000613f4a86856139d0565b9150506000613f5c8860040154611a3f565b9150600090508115613f7a57613f73600183615c0b565b9050613f7e565b5060005b613f9489600401548a600501546115d390615b80565b60178160048110613fa757613fa76159c9565b600302015463ffffffff1660048a0181905560058a0154613fc89190613a07565b50504260039097019690965590975095509293505050505b9193909250565b600083116140525760405162461bcd60e51b815260206004820152603260248201527f507972616d6964733a20596f7520646f6e2774206861766520656e6f756768206044820152711c995dd85c99081d1bc818d85cda081bdd5d60721b6064820152608401610973565b600033600e54604051639b5f7c6560e01b81526001600160a01b03808416600483015260248201889052929350911690639b5f7c6590604401600060405180830381600087803b1580156140a557600080fd5b505af11580156140b9573d6000803e3d6000fd5b5050600e5460405163d02dd2b360e01b8152600481018790526001600160a01b03909116925063d02dd2b39150602401600060405180830381600087803b15801561410357600080fd5b505af1158015614117573d6000803e3d6000fd5b50505050600082111561221957600e54600f5460405163db0e185b60e01b81526001600160a01b0391821660048201526024810185905291169063db0e185b90604401600060405180830381600087803b15801561417457600080fd5b505af1158015614188573d6000803e3d6000fd5b5050505050505050565b6127106001600160601b03821611156141bd5760405162461bcd60e51b815260040161097390615e02565b6001600160a01b0382166142135760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610973565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600190529190942093519051909116600160a01b029116179055565b600c80546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600c5460ff16156142da5760405162461bcd60e51b815260040161097390615a98565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258613c2c3390565b60008062015180614325846402540be400615b1f565b61432f9190615b54565b9050600061433c8561495a565b90506509184e72a000866143508385615b1f565b61435a9190615b1f565b6143649190615b54565b9695505050505050565b816001600160a01b0316836001600160a01b031614156143d05760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610973565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6144488484846132e6565b61445484848484614978565b6122195760405162461bcd60e51b815260040161097390615ea6565b600060608060008061448186611a3f565b9092509050614491816001615b68565b8260c001518360e0015194509450945050509193909250565b6060816144ce5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156144f857806144e2816159f5565b91506144f19050600a83615b54565b91506144d2565b6000816001600160401b03811115614512576145126150f8565b6040519080825280601f01601f19166020018201604052801561453c576020820181803683370190505b5090505b84156132de57614551600183615c0b565b915061455e600a86615ef8565b614569906030615b68565b60f81b81838151811061457e5761457e6159c9565b60200101906001600160f81b031916908160001a9053506145a0600a86615b54565b9450614540565b60608151600014156145c757505060408051602081019091526000815290565b6000604051806060016040528060408152602001615f7360409139905060006003845160026145f69190615b68565b6146009190615b54565b61460b906004615b1f565b6001600160401b03811115614622576146226150f8565b6040519080825280601f01601f19166020018201604052801561464c576020820181803683370190505b509050600182016020820185865187015b808210156146b8576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f811685015184535060018301925061465d565b50506003865106600181146146d457600281146146e7576146ef565b603d6001830353603d60028303536146ef565b603d60018303535b509195945050505050565b600080600061470884611a3f565b50606081015160809091015163ffffffff918216969116945092505050565b60006107c78260a0015183608001518460600151426147469190615c0b565b61430f565b60006107c78260a0015183608001516201518061430f565b60006001600160e01b0319821663780e9d6360e01b14806107c757506107c782614a73565b600c5460ff16156147ab5760405162461bcd60e51b815260040161097390615a98565b610bc2838383614ab3565b6001600160a01b03821661480c5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610973565b6000818152600460205260409020546001600160a01b0316156148715760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610973565b61487d60008383614788565b6001600160a01b03821660009081526005602052604081208054600192906148a6908490615b68565b909155505060008181526004602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b61490d81614b6b565b600090815260016020526040812055565b60008061492a83611a3f565b5060a0015163ffffffff169392505050565b60008061494883611a3f565b506020015163ffffffff169392505050565b60008061496683611a3f565b506040015163ffffffff169392505050565b60006001600160a01b0384163b15614a6b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906149bc903390899088908890600401615f0c565b6020604051808303816000875af19250505080156149f7575060408051601f3d908101601f191682019092526149f491810190615f3f565b60015b614a51573d808015614a25576040519150601f19603f3d011682016040523d82523d6000602084013e614a2a565b606091505b508051614a495760405162461bcd60e51b815260040161097390615ea6565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506132de565b5060016132de565b60006001600160e01b031982166380ac58cd60e01b1480614aa457506001600160e01b03198216635b5e139f60e01b145b806107c757506107c782614c12565b6001600160a01b038316614b0e57614b0981600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b614b31565b816001600160a01b0316836001600160a01b031614614b3157614b318382614c47565b6001600160a01b038216614b4857610bc281614ce4565b826001600160a01b0316826001600160a01b031614610bc257610bc28282614d93565b6000614b768261221f565b9050614b8481600084614788565b614b8f600083613181565b6001600160a01b0381166000908152600560205260408120805460019290614bb8908490615c0b565b909155505060008281526004602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006001600160e01b0319821663152a902d60e11b14806107c757506301ffc9a760e01b6001600160e01b03198316146107c7565b60006001614c54846123fa565b614c5e9190615c0b565b600083815260096020526040902054909150808214614cb1576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090614cf690600190615c0b565b6000838152600b6020526040812054600a8054939450909284908110614d1e57614d1e6159c9565b9060005260206000200154905080600a8381548110614d3f57614d3f6159c9565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a805480614d7757614d77615f5c565b6001900381819060005260206000200160009055905550505050565b6000614d9e836123fa565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b828054614de39061595f565b90600052602060002090601f016020900481019282614e055760008555614e4b565b82601f10614e1e57805160ff1916838001178555614e4b565b82800160010185558215614e4b579182015b82811115614e4b578251825591602001919060010190614e30565b50614e57929150614f2f565b5090565b604080516101008101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c0810182905260e081019190915290565b6040518060e00160405280614eff604051806101200160405280600081526020016060815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581525090565b81526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b5b80821115614e575760008155600101614f30565b6001600160e01b03198116811461298157600080fd5b600060208284031215614f6c57600080fd5b81356123f381614f44565b600060208284031215614f8957600080fd5b5035919050565b60005b83811015614fab578181015183820152602001614f93565b838111156122195750506000910152565b60008151808452614fd4816020860160208601614f90565b601f01601f19169290920160200192915050565b600061010063ffffffff808c168452808b166020850152808a1660408501528089166060850152808816608085015280871660a0850152508060c084015261503281840186614fbc565b905082810360e08401526150468185614fbc565b9b9a5050505050505050505050565b80356001600160a01b038116811461506c57600080fd5b919050565b80356001600160601b038116811461506c57600080fd5b6000806040838503121561509b57600080fd5b6150a483615055565b91506150b260208401615071565b90509250929050565b6020815260006123f36020830184614fbc565b600080604083850312156150e157600080fd5b6150ea83615055565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715615130576151306150f8565b60405290565b60405161010081016001600160401b0381118282101715615130576151306150f8565b604051601f8201601f191681016001600160401b0381118282101715615181576151816150f8565b604052919050565b803563ffffffff8116811461506c57600080fd5b60006001600160401b038311156151b6576151b66150f8565b6151c9601f8401601f1916602001615159565b90508281528383830111156151dd57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261520557600080fd5b6123f38383356020850161519d565b6000602080838503121561522757600080fd5b82356001600160401b038082111561523e57600080fd5b818501915085601f83011261525257600080fd5b61525a61510e565b8060808085018981111561526d57600080fd5b855b8181101561535b578035868111156152875760008081fd5b8701610100818d03121561529b5760008081fd5b6152a3615136565b6152ac82615189565b81526152b98a8301615189565b8a82015260406152ca818401615189565b9082015260606152db838201615189565b908201526152ea828601615189565b8582015260a06152fb818401615189565b9082015260c082810135898111156153135760008081fd5b61531f8f8286016151f4565b82840152505060e080830135898111156153395760008081fd5b6153458f8286016151f4565b918301919091525086525093870193870161526f565b50919998505050505050505050565b60008060006060848603121561537f57600080fd5b61538884615055565b925061539660208501615055565b9150604084013590509250925092565b600080604083850312156153b957600080fd5b82356001600160401b038111156153cf57600080fd5b6153db858286016151f4565b95602094909401359450505050565b600080604083850312156153fd57600080fd5b50508035926020909101359150565b6000806040838503121561541f57600080fd5b61542883615055565b915060208301356001600160401b0381111561544357600080fd5b61544f858286016151f4565b9150509250929050565b600082601f83011261546a57600080fd5b813560206001600160401b03821115615485576154856150f8565b8160051b615494828201615159565b92835284810182019282810190878511156154ae57600080fd5b83870192505b848310156154cd578235825291830191908301906154b4565b979650505050505050565b600080604083850312156154eb57600080fd5b82356001600160401b038082111561550257600080fd5b61550e86838701615459565b9350602085013591508082111561552457600080fd5b5061544f858286016151f4565b6000806000806080858703121561554757600080fd5b84356001600160401b0381111561555d57600080fd5b615569878288016151f4565b9450506020850135925061557f60408601615055565b9396929550929360600135925050565b6040815263ffffffff8351166040820152600060208401516155b9606084018263ffffffff169052565b50604084015163ffffffff8116608084015250606084015163ffffffff811660a084015250608084015163ffffffff811660c08401525060a084015163ffffffff811660e08401525060c08401516101008381015261561c610140840182614fbc565b905060e0850151603f198483030161012085015261563a8282614fbc565b925050508260208301529392505050565b6000806040838503121561565e57600080fd5b8235915060208301356001600160401b0381111561544357600080fd5b60008060006060848603121561569057600080fd5b833592506156a060208501615055565b91506156ae60408501615071565b90509250925092565b6000602082840312156156c957600080fd5b6123f382615055565b801515811461298157600080fd5b600080604083850312156156f357600080fd5b6156fc83615055565b9150602083013561570c816156d2565b809150509250929050565b6000806000806080858703121561572d57600080fd5b61573685615055565b935061574460208601615055565b92506040850135915060608501356001600160401b0381111561576657600080fd5b8501601f8101871361577757600080fd5b6157868782356020840161519d565b91505092959194509250565b6020808252825182820181905260009190848201906040850190845b818110156157ca578351835292840192918401916001016157ae565b50909695505050505050565b600080604083850312156157e957600080fd5b6157f283615055565b91506150b260208401615055565b60006020828403121561581257600080fd5b81356001600160401b0381111561582857600080fd5b6132de84828501615459565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561595257603f19888603018452815160e081518188528051828901528881015161012061010081818c01526158986102008c0184614fbc565b92506040840151828c015260609150818401516101408c01526080808501516101608d015260a0808601516101808e015260c0808701516101a08f01528787015197506158ea6101c08f018915159052565b8387015197506158ff6101e08f018915159052565b8e8901518f8f0152604089015160408f015284890151858f015282890151838f015281890151828f015280890151818f01525050505050809850505050508582019150858401935060018101905061585b565b5092979650505050505050565b600181811c9082168061597357607f821691505b6020821081141561263f57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615a0957615a096159df565b5060010190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f507972616d6964733a20496e636f7272656374206e616d65206c656e6774682c60408201527f206d757374206265206265747765656e203220746f2033310000000000000000606082015260800190565b6000816000190483118215151615615b3957615b396159df565b500290565b634e487b7160e01b600052601260045260246000fd5b600082615b6357615b63615b3e565b500490565b60008219821115615b7b57615b7b6159df565b500190565b6000600160ff1b821415615b9657615b966159df565b5060000390565b60008151615baf818560208601614f90565b9290920192915050565b60008251615bcb818460208701614f90565b9190910192915050565b815160009082906020808601845b83811015615bff57815185529382019390820190600101615be3565b50929695505050505050565b600082821015615c1d57615c1d6159df565b500390565b6000600160ff1b821415615c3857615c386159df565b506000190190565b600060208284031215615c5257600080fd5b81516123f3816156d2565b693d913730b6b2911d101160b11b81528551600090615c8381600a850160208b01614f90565b6c1116101134b6b0b3b2911d101160991b600a918401918201528651615cb0816017840160208b01614f90565b71222c202261747472696275746573223a205b60701b601792909101918201527f7b2274726169745f74797065223a202274696572222c202276616c7565223a206029820152601160f91b60498201528551615d1381604a840160208a01614f90565b7f227d2c207b2274726169745f74797065223a202274797065222c202276616c75604a92909101918201526432911d101160d91b606a820152615db1615da1615d9b615d62606f850189615b9d565b7f227d2c207b2274726169745f74797065223a2022746f6b656e73222c20227661815266363ab2911d101160c91b602082015260270190565b86615b9d565b63227d5d7d60e01b815260040190565b98975050505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251615df581601d850160208701614f90565b91909101601d0192915050565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b600060208284031215615e5e57600080fd5b5051919050565b600080821280156001600160ff1b0384900385131615615e8757615e876159df565b600160ff1b8390038412811615615ea057615ea06159df565b50500190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082615f0757615f07615b3e565b500690565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061436490830184614fbc565b600060208284031215615f5157600080fd5b81516123f381614f44565b634e487b7160e01b600052603160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122068b46b6552b1fd098ddfc704d587085d50819ea258757dddc640e00c4969fbac64736f6c634300080b00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572697066733a2f2f516d5369696b4a6e366d5065764d67397a7379506d526e5379324b7176684b505a356875756243545a6e465a56332f00000000000000000000000074c2a8a0161ff501d44a71c2e2dfdb5485912b1f0000000000000000000000007ee0825f13ade4a474343a61d38b49a72cb6fcae000000000000000000000000427dce9aa24e25477170ed3a7f759b0543f46cfb