Overview ERC721
Total Supply:
100 HMNFT

Holders:
82
Profile Summary
Blockchain:
C-Chain (43114)

Contract Source Code Verified (Partial Match)
Contract Name:
HeartManiaxNFT

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Created At:
Sun, 13 Nov 2022 18:09:58 GMT
HeartManiaxNFT.sol
contracts
HeartManiaxNFT.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "uri",
        "type": "string"
      },
      {
        "internalType": "bytes32",
        "name": "merkleroot",
        "type": "bytes32"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "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": "contract IERC20",
        "name": "token",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "ERC20PaymentReleased",
    "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"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "shares",
        "type": "uint256"
      }
    ],
    "name": "PayeeAdded",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "PaymentReceived",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "PaymentReleased",
    "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"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "_presaleClaimed",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "_publicClaimed",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "_reservedClaimed",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "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": "baseExtension",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "baseURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "burnNFT",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "contractURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "pure",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": [],
    "name": "maxSupply",
    "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": "notRevealedUri",
    "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": "paused",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "payee",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "presaleM",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      },
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      }
    ],
    "name": "presaleMint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "publicM",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "publicSaleMint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "releasable",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IERC20",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "releasable",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address payable",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "release",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IERC20",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "release",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IERC20",
        "name": "token",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "released",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "released",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "reservedMint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "reveal",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "revealed",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "root",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "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": "string",
        "name": "_newBaseExtension",
        "type": "string"
      }
    ],
    "name": "setBaseExtension",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_tokenBaseURI",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint96",
        "name": "fraction",
        "type": "uint96"
      }
    ],
    "name": "setDefaultRoyalty",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "merkleroot",
        "type": "bytes32"
      }
    ],
    "name": "setMerkleRoot",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_notRevealedURI",
        "type": "string"
      }
    ],
    "name": "setNotRevealedURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint96",
        "name": "fraction",
        "type": "uint96"
      }
    ],
    "name": "setTokenRoyalty",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "shares",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "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": [],
    "name": "togglePause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "togglePresale",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "togglePublicSale",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract IERC20",
        "name": "token",
        "type": "address"
      }
    ],
    "name": "totalReleased",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalReleased",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalShares",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "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"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
606460145561010060405260416080818152906200433260a03980516200002f9160169160209091019062000773565b5060408051808201909152600580825264173539b7b760d91b60209092019182526200005e9160179162000773565b506018805463ffffffff1916905560036019556005601a556010601b55670de0b6b3a7640000601f556714d1120d7b160000602090815560408051918201905260648152620000b290602290600162000802565b506040805160208101909152736e2b1653e177702037240b2396b59e12e4bb3d8f8152620000e590602390600162000845565b50348015620000f357600080fd5b5060405162004373380380620043738339810160408190526200011691620008ca565b60238054806020026020016040519081016040528092919081815260200182805480156200016e57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200014f575b50505050506022805480602002602001604051908101604052809291908181526020018280548015620001c157602002820191906000526020600020905b815481526020019060010190808311620001ac575b5050604080518082018252600e81526d1219585c9d13585b9a585e13919560921b602080830191825283518085019094526005845264121353919560da1b9084015281519195509193506200021b92506000919062000773565b5080516200023190600190602084019062000773565b5050506200024e62000248620003ad60201b60201c565b620003b1565b6001600a558051825114620002c55760405162461bcd60e51b815260206004820152603260248201527f5061796d656e7453706c69747465723a2070617965657320616e6420736861726044820152710cae640d8cadccee8d040dad2e6dac2e8c6d60731b60648201526084015b60405180910390fd5b6000825111620003185760405162461bcd60e51b815260206004820152601a60248201527f5061796d656e7453706c69747465723a206e6f207061796565730000000000006044820152606401620002bc565b60005b825181101562000384576200036f8382815181106200033e576200033e620009af565b60200260200101518383815181106200035b576200035b620009af565b60200260200101516200040360201b60201c565b806200037b81620009db565b9150506200031b565b50505060128190556200039a336102bc620005f1565b620003a582620006f2565b505062000a51565b3390565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620004705760405162461bcd60e51b815260206004820152602c60248201527f5061796d656e7453706c69747465723a206163636f756e74206973207468652060448201526b7a65726f206164647265737360a01b6064820152608401620002bc565b60008111620004c25760405162461bcd60e51b815260206004820152601d60248201527f5061796d656e7453706c69747465723a207368617265732061726520300000006044820152606401620002bc565b6001600160a01b0382166000908152600d6020526040902054156200053e5760405162461bcd60e51b815260206004820152602b60248201527f5061796d656e7453706c69747465723a206163636f756e7420616c726561647960448201526a206861732073686172657360a81b6064820152608401620002bc565b600f8054600181019091557f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b0319166001600160a01b0384169081179091556000908152600d60205260409020819055600b54620005a8908290620009f9565b600b55604080516001600160a01b0384168152602081018390527f40c340f65e17194d14ddddb073d3c9f888e3cb52b5aae0c6c7706b4fbc905fac910160405180910390a15050565b6127106001600160601b0382161115620006615760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401620002bc565b6001600160a01b038216620006b95760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620002bc565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600755565b620006fc62000715565b80516200071190601590602084019062000773565b5050565b6009546001600160a01b03163314620007715760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620002bc565b565b828054620007819062000a14565b90600052602060002090601f016020900481019282620007a55760008555620007f0565b82601f10620007c057805160ff1916838001178555620007f0565b82800160010185558215620007f0579182015b82811115620007f0578251825591602001919060010190620007d3565b50620007fe9291506200089d565b5090565b828054828255906000526020600020908101928215620007f0579160200282015b82811115620007f0578251829060ff1690559160200191906001019062000823565b828054828255906000526020600020908101928215620007f0579160200282015b82811115620007f057825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019062000866565b5b80821115620007fe57600081556001016200089e565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215620008de57600080fd5b82516001600160401b0380821115620008f657600080fd5b818501915085601f8301126200090b57600080fd5b815181811115620009205762000920620008b4565b604051601f8201601f19908116603f011681019083821181831017156200094b576200094b620008b4565b816040528281526020935088848487010111156200096857600080fd5b600091505b828210156200098c57848201840151818301850152908301906200096d565b828211156200099e5760008484830101525b969092015195979596505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415620009f257620009f2620009c5565b5060010190565b6000821982111562000a0f5762000a0f620009c5565b500190565b600181811c9082168062000a2957607f821691505b6020821081141562000a4b57634e487b7160e01b600052602260045260246000fd5b50919050565b6138d18062000a616000396000f3fe60806040526004361061036f5760003560e01c80638c74bf0e116101c6578063c4ae3168116100f7578063e222c7f911610095578063e985e9c51161006f578063e985e9c514610a62578063ebf0c71714610aab578063f2c4ce1e14610ac1578063f2fde38b14610ae157600080fd5b8063e222c7f914610a23578063e33b7de314610a38578063e8a3d48514610a4d57600080fd5b8063ce7c2ac2116100d1578063ce7c2ac214610981578063d5abeb01146109b7578063d79779b2146109cd578063da3ef23f14610a0357600080fd5b8063c4ae316814610937578063c66828621461094c578063c87b56dd1461096157600080fd5b8063a3f8eace11610164578063ad140c7c1161013e578063ad140c7c146108b7578063b3ab66b0146108e4578063b88d4fde146108f7578063c45ac0501461091757600080fd5b8063a3f8eace14610861578063a45063c014610881578063a475b5dd146108a257600080fd5b8063954dc3e3116101a0578063954dc3e3146107e357806395d89b41146107f65780639852595c1461080b578063a22cb4651461084157600080fd5b80638c74bf0e146107855780638cc4de19146107985780638da5cb5b146107c557600080fd5b8063406072a9116102a05780636352211e1161023e578063715018a611610218578063715018a6146107035780637cb64759146107185780637f09e66f146107385780638b83209b1461076557600080fd5b80636352211e146106ae5780636c0360eb146106ce57806370a08231146106e357600080fd5b8063518302271161027a578063518302271461063557806355f804b3146106545780635944c753146106745780635c975abb1461069457600080fd5b8063406072a9146105af57806342842e0e146105f557806348b750441461061557600080fd5b806318160ddd1161030d5780632890e0d7116102e75780632890e0d7146105265780632a55205a1461054657806334393743146105855780633a98ef391461059a57600080fd5b806318160ddd146104c357806319165587146104e657806323b872dd1461050657600080fd5b8063081812fc11610349578063081812fc14610436578063081c8c441461046e578063095ea7b3146104835780631798d58b146104a357600080fd5b806301ffc9a7146103bd57806304634d8d146103f257806306fdde031461041457600080fd5b366103b8577f6ef95f06320e7a25a04a175ca677b7052bdd97131872c2192525a629f51be77033604080516001600160a01b0390921682523460208301520160405180910390a1005b600080fd5b3480156103c957600080fd5b506103dd6103d8366004612f83565b610b01565b60405190151581526020015b60405180910390f35b3480156103fe57600080fd5b5061041261040d366004612fd1565b610b12565b005b34801561042057600080fd5b50610429610b28565b6040516103e9919061305e565b34801561044257600080fd5b50610456610451366004613071565b610bba565b6040516001600160a01b0390911681526020016103e9565b34801561047a57600080fd5b50610429610be1565b34801561048f57600080fd5b5061041261049e36600461308a565b610c6f565b3480156104af57600080fd5b506018546103dd9062010000900460ff1681565b3480156104cf57600080fd5b506104d8610d8a565b6040519081526020016103e9565b3480156104f257600080fd5b506104126105013660046130b6565b610d9a565b34801561051257600080fd5b506104126105213660046130d3565b610e7e565b34801561053257600080fd5b50610412610541366004613071565b610eaf565b34801561055257600080fd5b50610566610561366004613114565b610ec3565b604080516001600160a01b0390931683526020830191909152016103e9565b34801561059157600080fd5b50610412610f6f565b3480156105a657600080fd5b50600b546104d8565b3480156105bb57600080fd5b506104d86105ca366004613136565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b34801561060157600080fd5b506104126106103660046130d3565b610f96565b34801561062157600080fd5b50610412610630366004613136565b610fb1565b34801561064157600080fd5b506018546103dd90610100900460ff1681565b34801561066057600080fd5b5061041261066f3660046131fb565b6110bf565b34801561068057600080fd5b5061041261068f366004613244565b6110da565b3480156106a057600080fd5b506018546103dd9060ff1681565b3480156106ba57600080fd5b506104566106c9366004613071565b6110ed565b3480156106da57600080fd5b5061042961114d565b3480156106ef57600080fd5b506104d86106fe3660046130b6565b61115a565b34801561070f57600080fd5b506104126111e0565b34801561072457600080fd5b50610412610733366004613071565b6111f4565b34801561074457600080fd5b506104d86107533660046130b6565b601e6020526000908152604090205481565b34801561077157600080fd5b50610456610780366004613071565b611201565b610412610793366004613071565b611231565b3480156107a457600080fd5b506104d86107b33660046130b6565b601d6020526000908152604090205481565b3480156107d157600080fd5b506009546001600160a01b0316610456565b6104126107f1366004613282565b611371565b34801561080257600080fd5b5061042961169c565b34801561081757600080fd5b506104d86108263660046130b6565b6001600160a01b03166000908152600e602052604090205490565b34801561084d57600080fd5b5061041261085c36600461331c565b6116ab565b34801561086d57600080fd5b506104d861087c3660046130b6565b6116b6565b34801561088d57600080fd5b506018546103dd906301000000900460ff1681565b3480156108ae57600080fd5b506104126116fe565b3480156108c357600080fd5b506104d86108d23660046130b6565b601c6020526000908152604090205481565b6104126108f2366004613071565b611717565b34801561090357600080fd5b5061041261091236600461334a565b611977565b34801561092357600080fd5b506104d8610932366004613136565b6119af565b34801561094357600080fd5b50610412611a89565b34801561095857600080fd5b50610429611aa5565b34801561096d57600080fd5b5061042961097c366004613071565b611ab2565b34801561098d57600080fd5b506104d861099c3660046130b6565b6001600160a01b03166000908152600d602052604090205490565b3480156109c357600080fd5b506104d860145481565b3480156109d957600080fd5b506104d86109e83660046130b6565b6001600160a01b031660009081526010602052604090205490565b348015610a0f57600080fd5b50610412610a1e3660046131fb565b611c30565b348015610a2f57600080fd5b50610412611c4b565b348015610a4457600080fd5b50600c546104d8565b348015610a5957600080fd5b50610429611c74565b348015610a6e57600080fd5b506103dd610a7d366004613136565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b348015610ab757600080fd5b506104d860125481565b348015610acd57600080fd5b50610412610adc3660046131fb565b611c94565b348015610aed57600080fd5b50610412610afc3660046130b6565b611caf565b6000610b0c82611d25565b92915050565b610b1a611d4a565b610b248282611da4565b5050565b606060008054610b37906133ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610b63906133ca565b8015610bb05780601f10610b8557610100808354040283529160200191610bb0565b820191906000526020600020905b815481529060010190602001808311610b9357829003601f168201915b5050505050905090565b6000610bc582611e5e565b506000908152600460205260409020546001600160a01b031690565b60168054610bee906133ca565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1a906133ca565b8015610c675780601f10610c3c57610100808354040283529160200191610c67565b820191906000526020600020905b815481529060010190602001808311610c4a57829003601f168201915b505050505081565b6000610c7a826110ed565b9050806001600160a01b0316836001600160a01b03161415610ced5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b0382161480610d095750610d098133610a7d565b610d7b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610ce4565b610d858383611ebd565b505050565b6000610d9560215490565b905090565b6001600160a01b0381166000908152600d6020526040902054610dcf5760405162461bcd60e51b8152600401610ce490613405565b6000610dda826116b6565b905080610df95760405162461bcd60e51b8152600401610ce49061344b565b80600c6000828254610e0b91906134ac565b90915550506001600160a01b0382166000908152600e60205260409020805482019055610e388282611f2b565b604080516001600160a01b0384168152602081018390527fdf20fd1e76bc69d672e4814fafb2c449bba3a5369d8359adf9e05e6fde87b056910160405180910390a15050565b610e883382612044565b610ea45760405162461bcd60e51b8152600401610ce4906134c4565b610d858383836120c2565b610eb7611d4a565b610ec081612233565b50565b60008281526008602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610f385750604080518082019091526007546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610f57906001600160601b031687613511565b610f619190613530565b915196919550909350505050565b610f77611d4a565b6018805462ff0000198116620100009182900460ff1615909102179055565b610d8583838360405180602001604052806000815250611977565b6001600160a01b0381166000908152600d6020526040902054610fe65760405162461bcd60e51b8152600401610ce490613405565b6000610ff283836119af565b9050806110115760405162461bcd60e51b8152600401610ce49061344b565b6001600160a01b038316600090815260106020526040812080548392906110399084906134ac565b90915550506001600160a01b03808416600090815260116020908152604080832093861683529290522080548201905561107483838361224d565b604080516001600160a01b038481168252602082018490528516917f3be5b7a71e84ed12875d241991c70855ac5817d847039e17a9d895c1ceb0f18a910160405180910390a2505050565b6110c7611d4a565b8051610b24906015906020840190612e9e565b6110e2611d4a565b610d8583838361229f565b6000818152600260205260408120546001600160a01b031680610b0c5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610ce4565b60158054610bee906133ca565b60006001600160a01b0382166111c45760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610ce4565b506001600160a01b031660009081526003602052604090205490565b6111e8611d4a565b6111f2600061236a565b565b6111fc611d4a565b601255565b6000600f828154811061121657611216613552565b6000918252602090912001546001600160a01b031692915050565b611239611d4a565b600081116112825760405162461bcd60e51b815260206004820152601660248201527513585b9a585e1391950e881e995c9bc8185b5bdd5b9d60521b6044820152606401610ce4565b601b54336000908152601c60205260409020546112a09083906134ac565b11156112be5760405162461bcd60e51b8152600401610ce490613568565b60006112c960215490565b6014549091506112d983836134ac565b11156113275760405162461bcd60e51b815260206004820152601e60248201527f4d616e6961784e46543a204d617820737570706c7920657863656564656400006044820152606401610ce4565b336000908152601c6020526040812080548492906113469084906134ac565b90915550600090505b82811015610d855761135f6123bc565b80611369816135b0565b91505061134f565b81816113e8828280806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506012546040516bffffffffffffffffffffffff193360601b1660208201529092506034019050604051602081830303815290604052805190602001206123f4565b15156001146114095760405162461bcd60e51b8152600401610ce4906135cb565b3332146114285760405162461bcd60e51b8152600401610ce4906135cb565b336001600160a01b038716146114795760405162461bcd60e51b815260206004820152601660248201527513585b9a585e1391950e88139bdd08185b1b1bddd95960521b6044820152606401610ce4565b60185462010000900460ff166114d15760405162461bcd60e51b815260206004820152601960248201527f4d616e6961784e46543a2050726573616c65206973204f4646000000000000006044820152606401610ce4565b60185460ff16156115245760405162461bcd60e51b815260206004820152601d60248201527f4d616e6961784e46543a20436f6e7472616374206973207061757365640000006044820152606401610ce4565b6019548511156115465760405162461bcd60e51b8152600401610ce490613568565b601954336000908152601d60205260409020546115649087906134ac565b11156115825760405162461bcd60e51b8152600401610ce490613568565b600061158d60215490565b60145490915061159d87836134ac565b11156115eb5760405162461bcd60e51b815260206004820152601e60248201527f4d616e6961784e46543a206d617820737570706c7920657863656564656400006044820152606401610ce4565b3486601f546115fa9190613511565b11156116485760405162461bcd60e51b815260206004820152601f60248201527f4d616e6961784e46543a204e6f7420656e6f75676820417661782073656e74006044820152606401610ce4565b336000908152601d6020526040812080548892906116679084906134ac565b90915550600090505b86811015611692576116806123bc565b8061168a816135b0565b915050611670565b5050505050505050565b606060018054610b37906133ca565b610b2433838361240a565b6000806116c2600c5490565b6116cc90476134ac565b90506116f783826116f2866001600160a01b03166000908152600e602052604090205490565b6124d9565b9392505050565b611706611d4a565b6018805461ff001916610100179055565b3332146117365760405162461bcd60e51b8152600401610ce4906135cb565b6018546301000000900460ff1661178f5760405162461bcd60e51b815260206004820152601c60248201527f4d616e6961784e46543a205075626c696353616c65206973204f4646000000006044820152606401610ce4565b60185460ff16156117e25760405162461bcd60e51b815260206004820152601d60248201527f4d616e6961784e46543a20436f6e7472616374206973207061757365640000006044820152606401610ce4565b6000811161182b5760405162461bcd60e51b815260206004820152601660248201527513585b9a585e1391950e881e995c9bc8185b5bdd5b9d60521b6044820152606401610ce4565b601a54336000908152601e60205260409020546118499083906134ac565b11156118675760405162461bcd60e51b8152600401610ce490613568565b600061187260215490565b60145490915061188283836134ac565b11156118d05760405162461bcd60e51b815260206004820152601e60248201527f4d616e6961784e46543a204d617820737570706c7920657863656564656400006044820152606401610ce4565b34826020546118df9190613511565b111561192d5760405162461bcd60e51b815260206004820152601f60248201527f4d616e6961784e46543a204e6f7420656e6f75676820417661782073656e74006044820152606401610ce4565b336000908152601e60205260408120805484929061194c9084906134ac565b90915550600090505b82811015610d85576119656123bc565b8061196f816135b0565b915050611955565b6119813383612044565b61199d5760405162461bcd60e51b8152600401610ce4906134c4565b6119a984848484612517565b50505050565b6001600160a01b03821660009081526010602052604081205481906040516370a0823160e01b81523060048201526001600160a01b038616906370a082319060240160206040518083038186803b158015611a0957600080fd5b505afa158015611a1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a4191906135f7565b611a4b91906134ac565b6001600160a01b03808616600090815260116020908152604080832093881683529290522054909150611a8190849083906124d9565b949350505050565b611a91611d4a565b6018805460ff19811660ff90911615179055565b60178054610bee906133ca565b6000818152600260205260409020546060906001600160a01b0316611b315760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610ce4565b601854610100900460ff16611bd25760168054611b4d906133ca565b80601f0160208091040260200160405190810160405280929190818152602001828054611b79906133ca565b8015611bc65780601f10611b9b57610100808354040283529160200191611bc6565b820191906000526020600020905b815481529060010190602001808311611ba957829003601f168201915b50505050509050919050565b6000611bdc61254a565b90506000815111611bfc57604051806020016040528060008152506116f7565b80611c0684612559565b6017604051602001611c1a93929190613610565b6040516020818303038152906040529392505050565b611c38611d4a565b8051610b24906017906020840190612e9e565b611c53611d4a565b6018805463ff00000019811663010000009182900460ff1615909102179055565b60606040518060600160405280603c8152602001613860603c9139905090565b611c9c611d4a565b8051610b24906016906020840190612e9e565b611cb7611d4a565b6001600160a01b038116611d1c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce4565b610ec08161236a565b60006001600160e01b0319821663152a902d60e11b1480610b0c5750610b0c826125f6565b6009546001600160a01b031633146111f25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ce4565b6127106001600160601b0382161115611dcf5760405162461bcd60e51b8152600401610ce4906136d4565b6001600160a01b038216611e255760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610ce4565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600755565b6000818152600260205260409020546001600160a01b0316610ec05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610ce4565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611ef2826110ed565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b80471015611f7b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610ce4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611fc8576040519150601f19603f3d011682016040523d82523d6000602084013e611fcd565b606091505b5050905080610d855760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610ce4565b600080612050836110ed565b9050806001600160a01b0316846001600160a01b0316148061209757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b80611a815750836001600160a01b03166120b084610bba565b6001600160a01b031614949350505050565b826001600160a01b03166120d5826110ed565b6001600160a01b0316146120fb5760405162461bcd60e51b8152600401610ce49061371e565b6001600160a01b03821661215d5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610ce4565b61216a8383836001612646565b826001600160a01b031661217d826110ed565b6001600160a01b0316146121a35760405162461bcd60e51b8152600401610ce49061371e565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61223c816126ce565b600090815260086020526040812055565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610d8590849061270e565b6127106001600160601b03821611156122ca5760405162461bcd60e51b8152600401610ce4906136d4565b6001600160a01b0382166123205760405162461bcd60e51b815260206004820152601b60248201527f455243323938313a20496e76616c696420706172616d657465727300000000006044820152606401610ce4565b6040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600890529190942093519051909116600160a01b029116179055565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6123c46127e0565b6123d2602180546001019055565b60006123dd60215490565b90506123e9338261283a565b506111f26001600a55565b6000826124018584612854565b14949350505050565b816001600160a01b0316836001600160a01b0316141561246c5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610ce4565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b600b546001600160a01b0384166000908152600d6020526040812054909183916125039086613511565b61250d9190613530565b611a819190613763565b6125228484846120c2565b61252e84848484612899565b6119a95760405162461bcd60e51b8152600401610ce49061377a565b606060158054610b37906133ca565b60606000612566836129a6565b600101905060008167ffffffffffffffff8111156125865761258661316f565b6040519080825280601f01601f1916602001820160405280156125b0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846125e9576125ee565b6125ba565b509392505050565b60006001600160e01b031982166380ac58cd60e01b148061262757506001600160e01b03198216635b5e139f60e01b145b80610b0c57506301ffc9a760e01b6001600160e01b0319831614610b0c565b60018111156119a9576001600160a01b0384161561268c576001600160a01b03841660009081526003602052604081208054839290612686908490613763565b90915550505b6001600160a01b038316156119a9576001600160a01b038316600090815260036020526040812080548392906126c39084906134ac565b909155505050505050565b6126d781612a7e565b600081815260066020526040902080546126f0906133ca565b159050610ec0576000818152600660205260408120610ec091612f22565b6000612763826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b219092919063ffffffff16565b805190915015610d85578080602001905181019061278191906137cc565b610d855760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ce4565b6002600a5414156128335760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ce4565b6002600a55565b610b24828260405180602001604052806000815250612b30565b600081815b84518110156125ee576128858286838151811061287857612878613552565b6020026020010151612b63565b915080612891816135b0565b915050612859565b60006001600160a01b0384163b1561299b57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906128dd9033908990889088906004016137e9565b602060405180830381600087803b1580156128f757600080fd5b505af1925050508015612927575060408051601f3d908101601f1916820190925261292491810190613826565b60015b612981573d808015612955576040519150601f19603f3d011682016040523d82523d6000602084013e61295a565b606091505b5080516129795760405162461bcd60e51b8152600401610ce49061377a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611a81565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106129e55772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612a11576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612a2f57662386f26fc10000830492506010015b6305f5e1008310612a47576305f5e100830492506008015b6127108310612a5b57612710830492506004015b60648310612a6d576064830492506002015b600a8310610b0c5760010192915050565b6000612a89826110ed565b9050612a99816000846001612646565b612aa2826110ed565b600083815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526003845282852080546000190190558785526002909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6060611a818484600085612b8f565b612b3a8383612c6a565b612b476000848484612899565b610d855760405162461bcd60e51b8152600401610ce49061377a565b6000818310612b7f5760008281526020849052604090206116f7565b5060009182526020526040902090565b606082471015612bf05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610ce4565b600080866001600160a01b03168587604051612c0c9190613843565b60006040518083038185875af1925050503d8060008114612c49576040519150601f19603f3d011682016040523d82523d6000602084013e612c4e565b606091505b5091509150612c5f87838387612e03565b979650505050505050565b6001600160a01b038216612cc05760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610ce4565b6000818152600260205260409020546001600160a01b031615612d255760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610ce4565b612d33600083836001612646565b6000818152600260205260409020546001600160a01b031615612d985760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610ce4565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60608315612e6f578251612e68576001600160a01b0385163b612e685760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ce4565b5081611a81565b611a818383815115612e845781518083602001fd5b8060405162461bcd60e51b8152600401610ce4919061305e565b828054612eaa906133ca565b90600052602060002090601f016020900481019282612ecc5760008555612f12565b82601f10612ee557805160ff1916838001178555612f12565b82800160010185558215612f12579182015b82811115612f12578251825591602001919060010190612ef7565b50612f1e929150612f58565b5090565b508054612f2e906133ca565b6000825580601f10612f3e575050565b601f016020900490600052602060002090810190610ec091905b5b80821115612f1e5760008155600101612f59565b6001600160e01b031981168114610ec057600080fd5b600060208284031215612f9557600080fd5b81356116f781612f6d565b6001600160a01b0381168114610ec057600080fd5b80356001600160601b0381168114612fcc57600080fd5b919050565b60008060408385031215612fe457600080fd5b8235612fef81612fa0565b9150612ffd60208401612fb5565b90509250929050565b60005b83811015613021578181015183820152602001613009565b838111156119a95750506000910152565b6000815180845261304a816020860160208601613006565b601f01601f19169290920160200192915050565b6020815260006116f76020830184613032565b60006020828403121561308357600080fd5b5035919050565b6000806040838503121561309d57600080fd5b82356130a881612fa0565b946020939093013593505050565b6000602082840312156130c857600080fd5b81356116f781612fa0565b6000806000606084860312156130e857600080fd5b83356130f381612fa0565b9250602084013561310381612fa0565b929592945050506040919091013590565b6000806040838503121561312757600080fd5b50508035926020909101359150565b6000806040838503121561314957600080fd5b823561315481612fa0565b9150602083013561316481612fa0565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156131a0576131a061316f565b604051601f8501601f19908116603f011681019082821181831017156131c8576131c861316f565b816040528093508581528686860111156131e157600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561320d57600080fd5b813567ffffffffffffffff81111561322457600080fd5b8201601f8101841361323557600080fd5b611a8184823560208401613185565b60008060006060848603121561325957600080fd5b83359250602084013561326b81612fa0565b915061327960408501612fb5565b90509250925092565b6000806000806060858703121561329857600080fd5b84356132a381612fa0565b935060208501359250604085013567ffffffffffffffff808211156132c757600080fd5b818701915087601f8301126132db57600080fd5b8135818111156132ea57600080fd5b8860208260051b85010111156132ff57600080fd5b95989497505060200194505050565b8015158114610ec057600080fd5b6000806040838503121561332f57600080fd5b823561333a81612fa0565b915060208301356131648161330e565b6000806000806080858703121561336057600080fd5b843561336b81612fa0565b9350602085013561337b81612fa0565b925060408501359150606085013567ffffffffffffffff81111561339e57600080fd5b8501601f810187136133af57600080fd5b6133be87823560208401613185565b91505092959194509250565b600181811c908216806133de57607f821691505b602082108114156133ff57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526026908201527f5061796d656e7453706c69747465723a206163636f756e7420686173206e6f2060408201526573686172657360d01b606082015260800190565b6020808252602b908201527f5061796d656e7453706c69747465723a206163636f756e74206973206e6f742060408201526a191d59481c185e5b595b9d60aa1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082198211156134bf576134bf613496565b500190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b600081600019048311821515161561352b5761352b613496565b500290565b60008261354d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60208082526028908201527f4d616e6961784e46543a20596f752063616e2774206d696e7420736f206d75636040820152676820746f6b656e7360c01b606082015260800190565b60006000198214156135c4576135c4613496565b5060010190565b6020808252601290820152712737ba1030b63637bbb2b21037b934b3b4b760711b604082015260600190565b60006020828403121561360957600080fd5b5051919050565b6000845160206136238285838a01613006565b8551918401916136368184848a01613006565b8554920191600090600181811c908083168061365357607f831692505b85831081141561367157634e487b7160e01b85526022600452602485fd5b8080156136855760018114613696576136c3565b60ff198516885283880195506136c3565b60008b81526020902060005b858110156136bb5781548a8201529084019088016136a2565b505083880195505b50939b9a5050505050505050505050565b6020808252602a908201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646040820152692073616c65507269636560b01b606082015260800190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60008282101561377557613775613496565b500390565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000602082840312156137de57600080fd5b81516116f78161330e565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061381c90830184613032565b9695505050505050565b60006020828403121561383857600080fd5b81516116f781612f6d565b60008251613855818460208701613006565b919091019291505056fe68747470733a2f2f68656172742d6d616e6961782d6170692e76657263656c2e6170702f7374617469632f68656172745f6d616e6961782e6a736f6ea264697066735822122001e63e2cde4a90497c79cfed306efc191d2051f5176dbbf3c1e2f3827ce6677d64736f6c63430008090033697066733a2f2f516d5167347756346f4c7933317a4e727651513151696b4563316a707a6e316f6a67666a4575456f61504350414e2f68696464656e2e6a736f6e00000000000000000000000000000000000000000000000000000000000000407180e3b9d9f8229dd108b66344ed35101954bbc7cc005edc80b8ff5b583a9b2a000000000000000000000000000000000000000000000000000000000000005268747470733a2f2f6e79786172742e6d7970696e6174612e636c6f75642f697066732f516d5167347756346f4c7933317a4e727651513151696b4563316a707a6e316f6a67666a4575456f61504350414e2f0000000000000000000000000000