[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "isExcluded", "type": "bool" } ], "name": "ExcludeFromFees", "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": "pair", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAutomatedMarketMakerPair", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "tokensSwapped", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethReceived", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "tokensIntoLiquidity", "type": "uint256" } ], "name": "SwapAndLiquify", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" } ], "name": "UpdateUniswapV2Router", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newWallet", "type": "address" }, { "indexed": true, "internalType": "address", "name": "oldWallet", "type": "address" } ], "name": "marketingWalletUpdated", "type": "event" }, { "inputs": [ { "internalType": "address[]", "name": "_whitelist", "type": "address[]" } ], "name": "AddLiquidity", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "Manualsend", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Manualswap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "OpenTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "_isExcludedMaxTransactionAmount", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addresses", "type": "address[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "airdrop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "automatedMarketMakerPairs", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blocks", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "buyTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "excluded", "type": "bool" } ], "name": "excludeFromFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "updAds", "type": "address" }, { "internalType": "bool", "name": "isEx", "type": "bool" } ], "name": "excludeFromMaxTransaction", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "limitsInEffect", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSwapAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTransactionAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sellTotalFees", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "pair", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "setAutomatedMarketMakerPair", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "swapEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "swapTokensAtAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_buy", "type": "uint256" }, { "internalType": "uint256", "name": "_sell", "type": "uint256" } ], "name": "updateFees", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newMarketingWallet", "type": "address" } ], "name": "updateMarketingWallet", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateMaxSwap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxTxnAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newNum", "type": "uint256" } ], "name": "updateMaxWalletAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "updateSwapEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newAmount", "type": "uint256" } ], "name": "updateSwapTokensAtAmount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_whitelist", "type": "address" }, { "internalType": "bool", "name": "isWL", "type": "bool" } ], "name": "whitelistContract", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60c06040526001600b5f6101000a81548160ff0219169083151502179055505f600b60016101000a81548160ff0219169083151502179055505f600b60026101000a81548160ff02191690831515021790555034801561005d575f80fd5b506040518060400160405280600881526020017f496e66696c696e6b0000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f494c494e4b00000000000000000000000000000000000000000000000000000081525081600390816100d99190610c16565b5080600490816100e99190610c16565b5050506101086100fd6104a760201b60201c565b6104ae60201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d905061013181600161057160201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d29190610d43565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610237573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025b9190610d43565b6040518363ffffffff1660e01b8152600401610278929190610d7d565b6020604051808303815f875af1158015610294573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b89190610d43565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506102fe60a051600161057160201b60201c565b61031160a051600161065160201b60201c565b5f6a52b7d2dcc80cd2e400000090506a01a784379d99db420000006007819055506a01a784379d99db42000000600981905550692a5a058fc295ed00000060088190555069d3c21bcecceda1000000600a819055503360065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6103ce60646103c0605f856106ef60201b90919060201c565b61070460201b90919060201c565b90505f6103f860646103ea6005866106ef60201b90919060201c565b61070460201b90919060201c565b905061040a308361071960201b60201c565b61041a338261071960201b60201c565b61043861042b61087c60201b60201c565b60016108a460201b60201c565b6104493060016108a460201b60201c565b61045c61dead60016108a460201b60201c565b61047a61046d61087c60201b60201c565b600161057160201b60201c565b61048b30600161057160201b60201c565b61049e61dead600161057160201b60201c565b50505050610fdd565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61057f6104a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166105a361087c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146105f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f090610dfe565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f81836106fc9190610e49565b905092915050565b5f81836107119190610eb7565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077e90610f31565b60405180910390fd5b6107985f83836109d260201b60201c565b8060025f8282546107a99190610f4f565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546107fb9190610f4f565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161085f9190610f91565b60405180910390a36108785f83836109d760201b60201c565b5050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108b26104a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166108d661087c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161461092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092390610dfe565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516109c69190610fc4565b60405180910390a25050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610a5757607f821691505b602082108103610a6a57610a69610a13565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302610acc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610a91565b610ad68683610a91565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f610b1a610b15610b1084610aee565b610af7565b610aee565b9050919050565b5f819050919050565b610b3383610b00565b610b47610b3f82610b21565b848454610a9d565b825550505050565b5f90565b610b5b610b4f565b610b66818484610b2a565b505050565b5b81811015610b8957610b7e5f82610b53565b600181019050610b6c565b5050565b601f821115610bce57610b9f81610a70565b610ba884610a82565b81016020851015610bb7578190505b610bcb610bc385610a82565b830182610b6b565b50505b505050565b5f82821c905092915050565b5f610bee5f1984600802610bd3565b1980831691505092915050565b5f610c068383610bdf565b9150826002028217905092915050565b610c1f826109dc565b67ffffffffffffffff811115610c3857610c376109e6565b5b610c428254610a40565b610c4d828285610b8d565b5f60209050601f831160018114610c7e575f8415610c6c578287015190505b610c768582610bfb565b865550610cdd565b601f198416610c8c86610a70565b5f5b82811015610cb357848901518255600182019150602085019450602081019050610c8e565b86831015610cd05784890151610ccc601f891682610bdf565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d1282610ce9565b9050919050565b610d2281610d08565b8114610d2c575f80fd5b50565b5f81519050610d3d81610d19565b92915050565b5f60208284031215610d5857610d57610ce5565b5b5f610d6584828501610d2f565b91505092915050565b610d7781610d08565b82525050565b5f604082019050610d905f830185610d6e565b610d9d6020830184610d6e565b9392505050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f610de8602083610da4565b9150610df382610db4565b602082019050919050565b5f6020820190508181035f830152610e1581610ddc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610e5382610aee565b9150610e5e83610aee565b9250828202610e6c81610aee565b91508282048414831517610e8357610e82610e1c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610ec182610aee565b9150610ecc83610aee565b925082610edc57610edb610e8a565b5b828204905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610f1b601f83610da4565b9150610f2682610ee7565b602082019050919050565b5f6020820190508181035f830152610f4881610f0f565b9050919050565b5f610f5982610aee565b9150610f6483610aee565b9250828201905080821115610f7c57610f7b610e1c565b5b92915050565b610f8b81610aee565b82525050565b5f602082019050610fa45f830184610f82565b92915050565b5f8115159050919050565b610fbe81610faa565b82525050565b5f602082019050610fd75f830184610fb5565b92915050565b60805160a05161498c6110365f395f8181610ba601528181611195015261193101525f8181610ac101528181610aef01528181610be201528181610e2401528181612ec301528181612fa20152612fc9015261498c5ff3fe608060405260043610610280575f3560e01c8063751039fc1161014e578063b62496f5116100c0578063d257b34f11610079578063d257b34f14610935578063d85ba0631461095d578063dd62ed3e14610987578063e2f45605146109c3578063f2fde38b146109ed578063f8b45b0514610a1557610287565b8063b62496f51461082b578063bbc0c74214610867578063c024666814610891578063c18bc195146108b9578063c8c8ebe4146108e1578063cce987d41461090b57610287565b8063967ff23e11610112578063967ff23e146107115780639a7a23d61461073b578063a457c2d714610763578063a672990c1461079f578063a9059cbb146107c7578063aacebbe31461080357610287565b8063751039fc146106575780637571336a1461066d5780638da5cb5b14610695578063924de9b7146106bf57806395d89b41146106e757610287565b806339509351116101f25780636a486a8e116101ab5780636a486a8e146105615780636db794371461058b5780636ddd1713146105b357806370a08231146105dd578063715018a61461061957806373f0f1901461062f57610287565b8063395093511461047d5780634395545a146104b957806349bd5a5e146104cf5780634a62bb65146104f957806351cd7cc314610523578063672434821461053957610287565b80631694505e116102445780631694505e1461037157806318160ddd1461039b578063203e727e146103c557806323b872dd146103ed57806327c8f83514610429578063313ce5671461045357610287565b80630641013d1461028b57806306fdde03146102a7578063095ea7b3146102d157806310d5de531461030d578063150074a31461034957610287565b3661028757005b5f80fd5b6102a560048036038101906102a09190613628565b610a3f565b005b3480156102b2575f80fd5b506102bb610cbf565b6040516102c891906136cf565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190613722565b610d4f565b604051610304919061377a565b60405180910390f35b348015610318575f80fd5b50610333600480360381019061032e9190613793565b610d6c565b604051610340919061377a565b60405180910390f35b348015610354575f80fd5b5061036f600480360381019061036a91906137be565b610d89565b005b34801561037c575f80fd5b50610385610e22565b6040516103929190613844565b60405180910390f35b3480156103a6575f80fd5b506103af610e46565b6040516103bc919061386c565b60405180910390f35b3480156103d0575f80fd5b506103eb60048036038101906103e691906137be565b610e4f565b005b3480156103f8575f80fd5b50610413600480360381019061040e9190613885565b610f5e565b604051610420919061377a565b60405180910390f35b348015610434575f80fd5b5061043d611050565b60405161044a91906138e4565b60405180910390f35b34801561045e575f80fd5b50610467611056565b6040516104749190613918565b60405180910390f35b348015610488575f80fd5b506104a3600480360381019061049e9190613722565b61105e565b6040516104b0919061377a565b60405180910390f35b3480156104c4575f80fd5b506104cd611105565b005b3480156104da575f80fd5b506104e3611193565b6040516104f091906138e4565b60405180910390f35b348015610504575f80fd5b5061050d6111b7565b60405161051a919061377a565b60405180910390f35b34801561052e575f80fd5b506105376111c9565b005b348015610544575f80fd5b5061055f600480360381019061055a91906139df565b611292565b005b34801561056c575f80fd5b50610575611335565b604051610582919061386c565b60405180910390f35b348015610596575f80fd5b506105b160048036038101906105ac9190613a5d565b61133b565b005b3480156105be575f80fd5b506105c7611451565b6040516105d4919061377a565b60405180910390f35b3480156105e8575f80fd5b5061060360048036038101906105fe9190613793565b611464565b604051610610919061386c565b60405180910390f35b348015610624575f80fd5b5061062d6114a9565b005b34801561063a575f80fd5b50610655600480360381019061065091906137be565b611530565b005b348015610662575f80fd5b5061066b6115f1565b005b348015610678575f80fd5b50610693600480360381019061068e9190613ac5565b611688565b005b3480156106a0575f80fd5b506106a961175c565b6040516106b691906138e4565b60405180910390f35b3480156106ca575f80fd5b506106e560048036038101906106e09190613b03565b611784565b005b3480156106f2575f80fd5b506106fb61181d565b60405161070891906136cf565b60405180910390f35b34801561071c575f80fd5b506107256118ad565b604051610732919061386c565b60405180910390f35b348015610746575f80fd5b50610761600480360381019061075c9190613ac5565b6118b3565b005b34801561076e575f80fd5b5061078960048036038101906107849190613722565b6119cb565b604051610796919061377a565b60405180910390f35b3480156107aa575f80fd5b506107c560048036038101906107c09190613ac5565b611ab1565b005b3480156107d2575f80fd5b506107ed60048036038101906107e89190613722565b611bd9565b6040516107fa919061377a565b60405180910390f35b34801561080e575f80fd5b5061082960048036038101906108249190613793565b611bf6565b005b348015610836575f80fd5b50610851600480360381019061084c9190613793565b611d30565b60405161085e919061377a565b60405180910390f35b348015610872575f80fd5b5061087b611d4d565b604051610888919061377a565b60405180910390f35b34801561089c575f80fd5b506108b760048036038101906108b29190613ac5565b611d60565b005b3480156108c4575f80fd5b506108df60048036038101906108da91906137be565b611e82565b005b3480156108ec575f80fd5b506108f5611f91565b604051610902919061386c565b60405180910390f35b348015610916575f80fd5b5061091f611f97565b60405161092c919061386c565b60405180910390f35b348015610940575f80fd5b5061095b600480360381019061095691906137be565b611f9d565b005b348015610968575f80fd5b50610971612036565b60405161097e919061386c565b60405180910390f35b348015610992575f80fd5b506109ad60048036038101906109a89190613b2e565b61203c565b6040516109ba919061386c565b60405180910390f35b3480156109ce575f80fd5b506109d76120be565b6040516109e4919061386c565b60405180910390f35b3480156109f8575f80fd5b50610a136004803603810190610a0e9190613793565b6120c4565b005b348015610a20575f80fd5b50610a296121ba565b604051610a36919061386c565b60405180910390f35b610a476121c0565b73ffffffffffffffffffffffffffffffffffffffff16610a6561175c565b73ffffffffffffffffffffffffffffffffffffffff1614610abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab290613bb6565b60405180910390fd5b610aed307f0000000000000000000000000000000000000000000000000000000000000000610ae8610e46565b6121c7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b3430611464565b5f80610b3e61175c565b426040518863ffffffff1660e01b8152600401610b6096959493929190613c0d565b60606040518083038185885af1158015610b7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ba19190613c80565b5050507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663095ea7b37f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c3f929190613cd0565b6020604051808303815f875af1158015610c5b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7f9190613d0b565b505f5b8151811015610cbb57610cb0828281518110610ca157610ca0613d36565b5b60200260200101516001611ab1565b806001019050610c82565b5050565b606060038054610cce90613d90565b80601f0160208091040260200160405190810160405280929190818152602001828054610cfa90613d90565b8015610d455780601f10610d1c57610100808354040283529160200191610d45565b820191905f5260205f20905b815481529060010190602001808311610d2857829003601f168201915b5050505050905090565b5f610d62610d5b6121c0565b84846121c7565b6001905092915050565b6012602052805f5260405f205f915054906101000a900460ff1681565b610d916121c0565b73ffffffffffffffffffffffffffffffffffffffff16610daf61175c565b73ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90613bb6565b60405180910390fd5b670de0b6b3a764000081610e199190613ded565b600a8190555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b610e576121c0565b73ffffffffffffffffffffffffffffffffffffffff16610e7561175c565b73ffffffffffffffffffffffffffffffffffffffff1614610ecb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec290613bb6565b60405180910390fd5b670de0b6b3a76400006103e86001610ee1610e46565b610eeb9190613ded565b610ef59190613e5b565b610eff9190613e5b565b811015610f41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3890613efb565b60405180910390fd5b670de0b6b3a764000081610f559190613ded565b60078190555050565b5f610f6a84848461238a565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fb16121c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611030576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102790613f89565b60405180910390fd5b6110448561103c6121c0565b8584036121c7565b60019150509392505050565b61dead81565b5f6012905090565b5f6110fb61106a6121c0565b848460015f6110776121c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546110f69190613fa7565b6121c7565b6001905092915050565b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405161114b90614007565b5f6040518083038185875af1925050503d805f8114611185576040519150601f19603f3d011682016040523d82523d5f602084013e61118a565b606091505b50508091505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600b5f9054906101000a900460ff1681565b6111d16121c0565b73ffffffffffffffffffffffffffffffffffffffff166111ef61175c565b73ffffffffffffffffffffffffffffffffffffffff1614611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c90613bb6565b60405180910390fd5b5f600e819055506001600b60016101000a81548160ff0219169083151502179055506001600b60026101000a81548160ff02191690831515021790555043600c8190555042600d81905550565b5f848490501180156112a957508383905082829050145b6112b1575f80fd5b5f3390505f5b8585905081101561132d57611320828787848181106112d9576112d8613d36565b5b90506020020160208101906112ee9190613793565b670de0b6b3a764000087878681811061130a57611309613d36565b5b9050602002013561131b9190613ded565b61238a565b80806001019150506112b7565b505050505050565b60105481565b6113436121c0565b73ffffffffffffffffffffffffffffffffffffffff1661136161175c565b73ffffffffffffffffffffffffffffffffffffffff16146113b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ae90613bb6565b60405180910390fd5b60058211156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f290614065565b60405180910390fd5b600581111561143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690614065565b60405180910390fd5b81600f81905550806010819055505050565b600b60029054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114b16121c0565b73ffffffffffffffffffffffffffffffffffffffff166114cf61175c565b73ffffffffffffffffffffffffffffffffffffffff1614611525576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151c90613bb6565b60405180910390fd5b61152e5f612d63565b565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115706121c0565b73ffffffffffffffffffffffffffffffffffffffff161461158f575f80fd5b61159830611464565b81111580156115a657505f81115b6115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906140cd565b60405180910390fd5b6115ee81612e26565b50565b6115f96121c0565b73ffffffffffffffffffffffffffffffffffffffff1661161761175c565b73ffffffffffffffffffffffffffffffffffffffff161461166d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166490613bb6565b60405180910390fd5b5f600b5f6101000a81548160ff021916908315150217905550565b6116906121c0565b73ffffffffffffffffffffffffffffffffffffffff166116ae61175c565b73ffffffffffffffffffffffffffffffffffffffff1614611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90613bb6565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61178c6121c0565b73ffffffffffffffffffffffffffffffffffffffff166117aa61175c565b73ffffffffffffffffffffffffffffffffffffffff1614611800576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f790613bb6565b60405180910390fd5b80600b60026101000a81548160ff02191690831515021790555050565b60606004805461182c90613d90565b80601f016020809104026020016040519081016040528092919081815260200182805461185890613d90565b80156118a35780601f1061187a576101008083540402835291602001916118a3565b820191905f5260205f20905b81548152906001019060200180831161188657829003601f168201915b5050505050905090565b600e5481565b6118bb6121c0565b73ffffffffffffffffffffffffffffffffffffffff166118d961175c565b73ffffffffffffffffffffffffffffffffffffffff161461192f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192690613bb6565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b49061415b565b60405180910390fd5b6119c78282613059565b5050565b5f8060015f6119d86121c0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a89906141e9565b60405180910390fd5b611aa6611a9d6121c0565b858584036121c7565b600191505092915050565b611ab96121c0565b73ffffffffffffffffffffffffffffffffffffffff16611ad761175c565b73ffffffffffffffffffffffffffffffffffffffff1614611b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2490613bb6565b60405180910390fd5b8060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611bec611be56121c0565b848461238a565b6001905092915050565b611bfe6121c0565b73ffffffffffffffffffffffffffffffffffffffff16611c1c61175c565b73ffffffffffffffffffffffffffffffffffffffff1614611c72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6990613bb6565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fa751787977eeb3902e30e1d19ca00c6ad274a1f622c31a206e32366700b0567460405160405180910390a38060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6013602052805f5260405f205f915054906101000a900460ff1681565b600b60019054906101000a900460ff1681565b611d686121c0565b73ffffffffffffffffffffffffffffffffffffffff16611d8661175c565b73ffffffffffffffffffffffffffffffffffffffff1614611ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd390613bb6565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df782604051611e76919061377a565b60405180910390a25050565b611e8a6121c0565b73ffffffffffffffffffffffffffffffffffffffff16611ea861175c565b73ffffffffffffffffffffffffffffffffffffffff1614611efe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ef590613bb6565b60405180910390fd5b670de0b6b3a76400006103e86005611f14610e46565b611f1e9190613ded565b611f289190613e5b565b611f329190613e5b565b811015611f74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b90614277565b60405180910390fd5b670de0b6b3a764000081611f889190613ded565b60098190555050565b60075481565b600a5481565b611fa56121c0565b73ffffffffffffffffffffffffffffffffffffffff16611fc361175c565b73ffffffffffffffffffffffffffffffffffffffff1614612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090613bb6565b60405180910390fd5b670de0b6b3a76400008161202d9190613ded565b60088190555050565b600f5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085481565b6120cc6121c0565b73ffffffffffffffffffffffffffffffffffffffff166120ea61175c565b73ffffffffffffffffffffffffffffffffffffffff1614612140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213790613bb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036121ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a590614305565b60405180910390fd5b6121b781612d63565b50565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90614393565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036122a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229a90614421565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237d919061386c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ef906144af565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245d9061453d565b60405180910390fd5b5f810361247d5761247883835f6130f7565b612d5e565b600b5f9054906101000a900460ff16156129885761249961175c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561250757506124d761175c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561253f57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612579575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125925750600560149054906101000a900460ff16155b156129875743600e54600c546125a89190613fa7565b106125be5760196010819055506019600f819055505b600b60019054906101000a900460ff166126ad5760115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061266d575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6126ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126a3906145a5565b60405180910390fd5b5b60135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561274a575060125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156127f157600754811115612794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278b90614633565b60405180910390fd5b6009546127a083611464565b826127ab9190613fa7565b11156127ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e39061469b565b60405180910390fd5b612986565b60135f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561288e575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128dd576007548111156128d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128cf90614729565b60405180910390fd5b612985565b60125f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166129845760095461293783611464565b826129429190613fa7565b1115612983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297a9061469b565b60405180910390fd5b5b5b5b5b5b5f61299230611464565b90505f60085482101590508080156129b65750600b60029054906101000a900460ff165b80156129cf5750600560149054906101000a900460ff16155b8015612a22575060135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a75575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612ac8575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b5957600360145f4381526020019081526020015f20541015612b58576001600560146101000a81548160ff021916908315150217905550612b0a61336c565b5f600560146101000a81548160ff021916908315150217905550600160145f4381526020019081526020015f2054612b429190613fa7565b60145f4381526020019081526020015f20819055505b5b5f600560149054906101000a900460ff1615905060115f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c08575060115f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c11575f90505b5f8115612d4e5760135f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612c6f57505f601054115b15612ca357612c9c6064612c8e6010548861343990919063ffffffff16565b61344e90919063ffffffff16565b9050612d2b565b60135f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612cfa57505f600f54115b15612d2a57612d276064612d19600f548861343990919063ffffffff16565b61344e90919063ffffffff16565b90505b5b5f811115612d3f57612d3e8730836130f7565b5b8085612d4b9190614747565b94505b612d598787876130f7565b505050505b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f600267ffffffffffffffff811115612e4257612e41613492565b5b604051908082528060200260200182016040528015612e705781602001602082028036833780820191505090505b50905030815f81518110612e8757612e86613d36565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f4e919061478e565b81600181518110612f6257612f61613d36565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612fc7307f0000000000000000000000000000000000000000000000000000000000000000846121c7565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613028959493929190614870565b5f604051808303815f87803b15801561303f575f80fd5b505af1158015613051573d5f803e3d5ffd5b505050505050565b8060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603613165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161315c906144af565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036131d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131ca9061453d565b60405180910390fd5b6131de838383613463565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015613261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325890614938565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546132ef9190613fa7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051613353919061386c565b60405180910390a3613366848484613468565b50505050565b5f61337630611464565b90505f808203613387575050613437565b600a5482111561339757600a5491505b5f8290506133a481612e26565b5f47905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516133ed90614007565b5f6040518083038185875af1925050503d805f8114613427576040519150601f19603f3d011682016040523d82523d5f602084013e61342c565b606091505b505080935050505050505b565b5f81836134469190613ded565b905092915050565b5f818361345b9190613e5b565b905092915050565b505050565b505050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6134c882613482565b810181811067ffffffffffffffff821117156134e7576134e6613492565b5b80604052505050565b5f6134f961346d565b905061350582826134bf565b919050565b5f67ffffffffffffffff82111561352457613523613492565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61356282613539565b9050919050565b61357281613558565b811461357c575f80fd5b50565b5f8135905061358d81613569565b92915050565b5f6135a56135a08461350a565b6134f0565b905080838252602082019050602084028301858111156135c8576135c7613535565b5b835b818110156135f157806135dd888261357f565b8452602084019350506020810190506135ca565b5050509392505050565b5f82601f83011261360f5761360e61347e565b5b813561361f848260208601613593565b91505092915050565b5f6020828403121561363d5761363c613476565b5b5f82013567ffffffffffffffff81111561365a5761365961347a565b5b613666848285016135fb565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6136a18261366f565b6136ab8185613679565b93506136bb818560208601613689565b6136c481613482565b840191505092915050565b5f6020820190508181035f8301526136e78184613697565b905092915050565b5f819050919050565b613701816136ef565b811461370b575f80fd5b50565b5f8135905061371c816136f8565b92915050565b5f806040838503121561373857613737613476565b5b5f6137458582860161357f565b92505060206137568582860161370e565b9150509250929050565b5f8115159050919050565b61377481613760565b82525050565b5f60208201905061378d5f83018461376b565b92915050565b5f602082840312156137a8576137a7613476565b5b5f6137b58482850161357f565b91505092915050565b5f602082840312156137d3576137d2613476565b5b5f6137e08482850161370e565b91505092915050565b5f819050919050565b5f61380c61380761380284613539565b6137e9565b613539565b9050919050565b5f61381d826137f2565b9050919050565b5f61382e82613813565b9050919050565b61383e81613824565b82525050565b5f6020820190506138575f830184613835565b92915050565b613866816136ef565b82525050565b5f60208201905061387f5f83018461385d565b92915050565b5f805f6060848603121561389c5761389b613476565b5b5f6138a98682870161357f565b93505060206138ba8682870161357f565b92505060406138cb8682870161370e565b9150509250925092565b6138de81613558565b82525050565b5f6020820190506138f75f8301846138d5565b92915050565b5f60ff82169050919050565b613912816138fd565b82525050565b5f60208201905061392b5f830184613909565b92915050565b5f80fd5b5f8083601f84011261394a5761394961347e565b5b8235905067ffffffffffffffff81111561396757613966613931565b5b60208301915083602082028301111561398357613982613535565b5b9250929050565b5f8083601f84011261399f5761399e61347e565b5b8235905067ffffffffffffffff8111156139bc576139bb613931565b5b6020830191508360208202830111156139d8576139d7613535565b5b9250929050565b5f805f80604085870312156139f7576139f6613476565b5b5f85013567ffffffffffffffff811115613a1457613a1361347a565b5b613a2087828801613935565b9450945050602085013567ffffffffffffffff811115613a4357613a4261347a565b5b613a4f8782880161398a565b925092505092959194509250565b5f8060408385031215613a7357613a72613476565b5b5f613a808582860161370e565b9250506020613a918582860161370e565b9150509250929050565b613aa481613760565b8114613aae575f80fd5b50565b5f81359050613abf81613a9b565b92915050565b5f8060408385031215613adb57613ada613476565b5b5f613ae88582860161357f565b9250506020613af985828601613ab1565b9150509250929050565b5f60208284031215613b1857613b17613476565b5b5f613b2584828501613ab1565b91505092915050565b5f8060408385031215613b4457613b43613476565b5b5f613b518582860161357f565b9250506020613b628582860161357f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613ba0602083613679565b9150613bab82613b6c565b602082019050919050565b5f6020820190508181035f830152613bcd81613b94565b9050919050565b5f819050919050565b5f613bf7613bf2613bed84613bd4565b6137e9565b6136ef565b9050919050565b613c0781613bdd565b82525050565b5f60c082019050613c205f8301896138d5565b613c2d602083018861385d565b613c3a6040830187613bfe565b613c476060830186613bfe565b613c5460808301856138d5565b613c6160a083018461385d565b979650505050505050565b5f81519050613c7a816136f8565b92915050565b5f805f60608486031215613c9757613c96613476565b5b5f613ca486828701613c6c565b9350506020613cb586828701613c6c565b9250506040613cc686828701613c6c565b9150509250925092565b5f604082019050613ce35f8301856138d5565b613cf0602083018461385d565b9392505050565b5f81519050613d0581613a9b565b92915050565b5f60208284031215613d2057613d1f613476565b5b5f613d2d84828501613cf7565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613da757607f821691505b602082108103613dba57613db9613d63565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613df7826136ef565b9150613e02836136ef565b9250828202613e10816136ef565b91508282048414831517613e2757613e26613dc0565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e65826136ef565b9150613e70836136ef565b925082613e8057613e7f613e2e565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e74205f8201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b5f613ee5602f83613679565b9150613ef082613e8b565b604082019050919050565b5f6020820190508181035f830152613f1281613ed9565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613f73602883613679565b9150613f7e82613f19565b604082019050919050565b5f6020820190508181035f830152613fa081613f67565b9050919050565b5f613fb1826136ef565b9150613fbc836136ef565b9250828201905080821115613fd457613fd3613dc0565b5b92915050565b5f81905092915050565b50565b5f613ff25f83613fda565b9150613ffd82613fe4565b5f82019050919050565b5f61401182613fe7565b9150819050919050565b7f45786365656420746865206c696d6974000000000000000000000000000000005f82015250565b5f61404f601083613679565b915061405a8261401b565b602082019050919050565b5f6020820190508181035f83015261407c81614043565b9050919050565b7f57726f6e6720616d6f756e7400000000000000000000000000000000000000005f82015250565b5f6140b7600c83613679565b91506140c282614083565b602082019050919050565b5f6020820190508181035f8301526140e4816140ab565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d205f8201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b5f614145603983613679565b9150614150826140eb565b604082019050919050565b5f6020820190508181035f83015261417281614139565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6141d3602583613679565b91506141de82614179565b604082019050919050565b5f6020820190508181035f830152614200816141c7565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e205f8201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b5f614261602483613679565b915061426c82614207565b604082019050919050565b5f6020820190508181035f83015261428e81614255565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6142ef602683613679565b91506142fa82614295565b604082019050919050565b5f6020820190508181035f83015261431c816142e3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61437d602483613679565b915061438882614323565b604082019050919050565b5f6020820190508181035f8301526143aa81614371565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61440b602283613679565b9150614416826143b1565b604082019050919050565b5f6020820190508181035f830152614438816143ff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f614499602583613679565b91506144a48261443f565b604082019050919050565b5f6020820190508181035f8301526144c68161448d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f614527602383613679565b9150614532826144cd565b604082019050919050565b5f6020820190508181035f8301526145548161451b565b9050919050565b7f54726164696e67206973206e6f74206163746976652e000000000000000000005f82015250565b5f61458f601683613679565b915061459a8261455b565b602082019050919050565b5f6020820190508181035f8301526145bc81614583565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f61461d603583613679565b9150614628826145c3565b604082019050919050565b5f6020820190508181035f83015261464a81614611565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614685601383613679565b915061469082614651565b602082019050919050565b5f6020820190508181035f8301526146b281614679565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f614713603683613679565b915061471e826146b9565b604082019050919050565b5f6020820190508181035f83015261474081614707565b9050919050565b5f614751826136ef565b915061475c836136ef565b925082820390508181111561477457614773613dc0565b5b92915050565b5f8151905061478881613569565b92915050565b5f602082840312156147a3576147a2613476565b5b5f6147b08482850161477a565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6147eb81613558565b82525050565b5f6147fc83836147e2565b60208301905092915050565b5f602082019050919050565b5f61481e826147b9565b61482881856147c3565b9350614833836147d3565b805f5b8381101561486357815161484a88826147f1565b975061485583614808565b925050600181019050614836565b5085935050505092915050565b5f60a0820190506148835f83018861385d565b6148906020830187613bfe565b81810360408301526148a28186614814565b90506148b160608301856138d5565b6148be608083018461385d565b9695505050505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f614922602683613679565b915061492d826148c8565b604082019050919050565b5f6020820190508181035f83015261494f81614916565b905091905056fea264697066735822122098b909d677ccf71da54edcc98ab53ef228f4e623c95675e06a1778e359035db664736f6c634300081a0033