Overview ERC721
Total Supply:
80 FAR_COLLECTION

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

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 99999 runs

Created At:
Fri, 03 Jun 2022 23:06:30 GMT
FarCollection2.sol
FarCollection2.sol
AccessControl.sol
Address.sol
Context.sol
CustomRoyalties.sol
ERC165.sol
ERC721.sol
ERC721URIStorage.sol
Far721.sol
Far721Physical.sol
FarCollection2.sol
FixedRoyalties.sol
IAccessControl.sol
IERC165.sol
IERC2981.sol
IERC721.sol
IERC721Metadata.sol
IERC721Receiver.sol
OnChainWhitelist.sol
Strings.sol
SuperAccessControl.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "fixedReceiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "fixedPercentage",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "mintingAddress",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "superAdmin",
        "type": "address"
      }
    ],
    "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": false,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "percentage",
        "type": "uint256"
      }
    ],
    "name": "CustomRoyaltiesChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "percentage",
        "type": "uint256"
      }
    ],
    "name": "FixedRoyaltiesChanged",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "TokenClaimed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "oldURI",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "uri",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "TokenMetadataChange",
    "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": [],
    "name": "CLAIMER_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "CONTRACTS_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "EXTERNAL_PROXY_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "FAR721INTERFACE",
    "outputs": [
      {
        "internalType": "bytes4",
        "name": "",
        "type": "bytes4"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MANAGER_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "METADATA_UPDATER_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MINTER_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ROYALTY_ROLE",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "URI_LOCKED",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "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": [
      {
        "internalType": "address[]",
        "name": "toAddresses",
        "type": "address[]"
      },
      {
        "internalType": "string[]",
        "name": "uris",
        "type": "string[]"
      }
    ],
    "name": "batchMintNewIds",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "checkSuperRole",
    "outputs": [],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "claimItem",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      }
    ],
    "name": "getSuperRoleAdmin",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32",
        "name": "role",
        "type": "bytes32"
      },
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "hasSuperRole",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "isClaimed",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "isWhitelistEnabled",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "wladdress",
        "type": "address"
      }
    ],
    "name": "isWhitelisted",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lastTokenId",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "lockURIs",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "string",
        "name": "uri",
        "type": "string"
      }
    ],
    "name": "mintNewId",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_salePrice",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "royaltyAmount",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "royaltyPercentage",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "royaltyReceiver",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "salesManagerTransfer",
    "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": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "percentage",
        "type": "uint256"
      }
    ],
    "name": "setCustomRoyalties",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "percentage",
        "type": "uint256"
      }
    ],
    "name": "setFixedRoyalties",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newSuperAdminAddressContract",
        "type": "address"
      }
    ],
    "name": "setSuperAdminAddressContract",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "string",
        "name": "uri",
        "type": "string"
      }
    ],
    "name": "setTokenURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "addresses",
        "type": "address[]"
      },
      {
        "internalType": "bool",
        "name": "value",
        "type": "bool"
      }
    ],
    "name": "setWhitelist",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "superAdminAddressContract",
    "outputs": [
      {
        "internalType": "contract ISuperAdminAddress",
        "name": "",
        "type": "address"
      }
    ],
    "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": [
      {
        "internalType": "bool",
        "name": "enabled",
        "type": "bool"
      }
    ],
    "name": "toggleWhitelist",
    "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": [],
    "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"
  }
]


Contract Creation Code
60806040523480156200001157600080fd5b5060405162004b5238038062004b5283398101604081905262000034916200052c565b60018686868685848484848482828181888886620000528162000107565b600080546001600160a01b0319166001600160a01b039290921691909117905581516200008790600190602085019062000372565b5080516200009d90600290602084019062000372565b505050620000b282826200022b60201b60201c565b5050600f80549d151560ff19909e169d909d17909c555050601180546001600160a01b03909d1661010002610100600160a81b0319909d169c909c17909b5550620006299d5050505050505050505050505050565b6040518060400160405280601b81526020017f466172616e646f6c6520537570657241646d696e41646472657373000000000081525080519060200120816001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200017e57600080fd5b505afa15801562000193573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001bd9190810190620004ec565b8051906020012014620002285760405162461bcd60e51b815260206004820152602860248201527f547279696e6720746f20736574207468652077726f6e6720636f6e7472616374604482015267206164647265737360c01b60648201526084015b60405180910390fd5b50565b801562000312576001600160a01b038216620002b05760405162461bcd60e51b815260206004820152603c60248201527f726563656976657220697320746865207a65726f206164647265737320666f7260448201527f20706f73697469766520726f79616c74792070657263656e746167650000000060648201526084016200021f565b60648110620003125760405162461bcd60e51b815260206004820152602760248201527f63616e6e6f742073657420726f79616c74792070657263656e7461676520746f6044820152660203e3d203130360cc1b60648201526084016200021f565b600980546001600160a01b0319166001600160a01b038416908117909155600882905560408051918252602082018390527f6fa9e0da6973f96fb2665a81ba596d56fa92dc16f5e888ee4c8ec61c888b26ab910160405180910390a15050565b8280546200038090620005d6565b90600052602060002090601f016020900481019282620003a45760008555620003ef565b82601f10620003bf57805160ff1916838001178555620003ef565b82800160010185558215620003ef579182015b82811115620003ef578251825591602001919060010190620003d2565b50620003fd92915062000401565b5090565b5b80821115620003fd576000815560010162000402565b80516001600160a01b03811681146200043057600080fd5b919050565b600082601f8301126200044757600080fd5b81516001600160401b038082111562000464576200046462000613565b604051601f8301601f19908116603f011681019082821181831017156200048f576200048f62000613565b81604052838152602092508683858801011115620004ac57600080fd5b600091505b83821015620004d05785820183015181830184015290820190620004b1565b83821115620004e25760008385830101525b9695505050505050565b600060208284031215620004ff57600080fd5b81516001600160401b038111156200051657600080fd5b620005248482850162000435565b949350505050565b60008060008060008060c087890312156200054657600080fd5b86516001600160401b03808211156200055e57600080fd5b6200056c8a838b0162000435565b975060208901519150808211156200058357600080fd5b506200059289828a0162000435565b955050620005a36040880162000418565b935060608701519250620005ba6080880162000418565b9150620005ca60a0880162000418565b90509295509295509295565b600181811c90821680620005eb57607f821691505b602082108114156200060d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b61451980620006396000396000f3fe608060405234801561001057600080fd5b50600436106102ff5760003560e01c806370a082311161019c578063ad6c931b116100ee578063dd4872c611610097578063ec87621c11610071578063ec87621c1461076e578063f84ddf0b14610795578063fc5f18d31461079d57600080fd5b8063dd4872c6146106f2578063e985e9c514610705578063ea58d1b61461074e57600080fd5b8063cb9fcffb116100c8578063cb9fcffb14610691578063d5391393146106b8578063d5ffa967146106df57600080fd5b8063ad6c931b14610632578063b88d4fde1461066b578063c87b56dd1461067e57600080fd5b806395c442c3116101505780639e34070f1161012a5780639e34070f146105d5578063a22cb465146105f8578063a787ad971461060b57600080fd5b806395c442c3146105a757806395d89b41146105ba57806398f44876146105c257600080fd5b80637da393e0116101815780637da393e01461055a57806380e3f1ad1461056d578063890257501461058057600080fd5b806370a0823114610520578063745e78571461053357600080fd5b806323b872dd1161025557806342842e0e116102095780636352211e116101e35780636352211e146104f25780636a5f2a5e14610505578063706bf83d1461050d57600080fd5b806342842e0e146104b957806342dcd33e146104cc5780635cd2dd5e146104df57600080fd5b80632a55205a1161023a5780632a55205a1461042e5780633af32abf1461046d5780633c271a05146104a657600080fd5b806323b872dd1461040857806326366ebc1461041b57600080fd5b8063162094c4116102b75780631d370e60116102915780631d370e60146103d5578063201eed9e146103e85780632275ebc0146103fb57600080fd5b8063162094c4146103af57806318160ddd146103c2578063184d69ab146103ca57600080fd5b8063081812fc116102e8578063081812fc14610341578063095ea7b314610379578063129260301461038e57600080fd5b806301ffc9a71461030457806306fdde031461032c575b600080fd5b610317610312366004613ec7565b6107c4565b60405190151581526020015b60405180910390f35b610334610851565b60405161032391906140b4565b61035461034f366004613e70565b6108e3565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610323565b61038c610387366004613d47565b6109c2565b005b6103a161039c366004613e70565b610b4f565b604051908152602001610323565b61038c6103bd366004613f9f565b610b94565b600c546103a1565b600f5460ff16610317565b61038c6103e3366004613f78565b610e06565b61038c6103f6366004613b95565b610e42565b6011546103179060ff1681565b61038c610416366004613c08565b610ebe565b61038c610429366004613d47565b610f5f565b61044161043c366004613fd0565b610f94565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610323565b61031761047b366004613b95565b73ffffffffffffffffffffffffffffffffffffffff1660009081526010602052604090205460ff1690565b61038c6104b4366004613ddf565b61102a565b61038c6104c7366004613c08565b6111e2565b6103176104da366004613ea2565b6111fd565b6103546104ed366004613e70565b61134d565b610354610500366004613e70565b6113be565b61038c611470565b61038c61051b366004613cf7565b6114c9565b6103a161052e366004613b95565b611680565b6103a17f4f9b89a9b6cdc546eaf48526f2e7efb7f600b99f7342ad4d1bd9a80d2904fdb781565b61038c610568366004613e70565b61174e565b61038c61057b366004613e36565b611826565b6103a17f7f5260842512b02356ff92de24be96e7e1aac2e234d9371b076ac2b4cddda61e81565b6103a16105b5366004613e70565b611a07565b610334611b32565b61038c6105d0366004613ea2565b611b41565b6103176105e3366004613e70565b6000908152600e602052604090205460ff1690565b61038c610606366004613cc9565b611c6b565b6103a17f9253af9d8282c03c44bbb1e9529141344c782647a2f67ba24c8954db1de58ca981565b61063a611c76565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610323565b61038c610679366004613c49565b611cb8565b61033461068c366004613e70565b611d5a565b6103a17feb54e1feee3ae17add098cbf58a47457bf5f7c3a89ceab263cbdb01b3da6d98e81565b6103a17f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b61038c6106ed366004613d73565b611f14565b61038c610700366004613d47565b611f52565b610317610713366004613bcf565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260066020908152604080832093909416825291909152205460ff1690565b6000546103549073ffffffffffffffffffffffffffffffffffffffff1681565b6103a17f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0881565b600d546103a1565b6103a17f11a8cb5a02bd6c42679835e867ef2118ba78f088f8300511420c6603c21d9c7881565b60006107cf826121c5565b806107de57506107de826122a8565b8061084b57506040518060400160405280600481526020017f464152370000000000000000000000000000000000000000000000000000000081525061082390614277565b7fffffffff000000000000000000000000000000000000000000000000000000008381169116145b92915050565b60606001805461086090614328565b80601f016020809104026020016040519081016040528092919081815260200182805461088c90614328565b80156108d95780601f106108ae576101008083540402835291602001916108d9565b820191906000526020600020905b8154815290600101906020018083116108bc57829003601f168201915b5050505050905090565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff16610999576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006109cd826113be565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610990565b3373ffffffffffffffffffffffffffffffffffffffff82161480610ab45750610ab48133610713565b610b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610990565b610b4a83836122fe565b505050565b6000818152600b602052604081205473ffffffffffffffffffffffffffffffffffffffff1615610b8c57506000908152600a602052604090205490565b60085461084b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b158015610bfa57600080fd5b505afa158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c329190613bb2565b73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7757600080fd5b505afa158015610c8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caf9190613e53565b15610d16576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610990565b7f7f5260842512b02356ff92de24be96e7e1aac2e234d9371b076ac2b4cddda61e610d418133611b41565b60115460ff1615610dae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5552497320617265206c6f636b656400000000000000000000000000000000006044820152606401610990565b6000610db984611d5a565b9050610dc5848461239e565b7f8eadb3b1376d6a328ee640db56aaf263f4690afbb716cca67dbbe5c1bade53ca818486604051610df8939291906140c7565b60405180910390a150505050565b7feb54e1feee3ae17add098cbf58a47457bf5f7c3a89ceab263cbdb01b3da6d98e610e318133611b41565b610e3c84848461246e565b50505050565b7f9253af9d8282c03c44bbb1e9529141344c782647a2f67ba24c8954db1de58ca9610e6d8133611b41565b610e7682612640565b50600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610ec833826127b4565b610f54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610990565b610b4a838383612923565b7feb54e1feee3ae17add098cbf58a47457bf5f7c3a89ceab263cbdb01b3da6d98e610f8a8133611b41565b610b4a8383612b95565b6000828152600b6020526040812054819073ffffffffffffffffffffffffffffffffffffffff1615611013576000848152600b6020908152604080832054600a9092529091205473ffffffffffffffffffffffffffffffffffffffff90911692506064906110029085614223565b61100c919061420f565b9050611023565b61101d8484612d53565b90925090505b9250929050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b15801561109057600080fd5b505afa1580156110a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c89190613bb2565b73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190613e53565b156111ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610990565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086111d78133611b41565b610e3c848484612d95565b610b4a83838360405180602001604052806000815250611cb8565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b15801561126657600080fd5b505afa15801561127a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061129e9190613bb2565b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff848116602483015291909116906391d148549060440160206040518083038186803b15801561130e57600080fd5b505afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113469190613e53565b9392505050565b6000818152600b602052604081205473ffffffffffffffffffffffffffffffffffffffff16156113a057506000908152600b602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60095473ffffffffffffffffffffffffffffffffffffffff1661084b565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff168061084b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201527f656e7420746f6b656e00000000000000000000000000000000000000000000006064820152608401610990565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b0861149b8133611b41565b50601180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b15801561152f57600080fd5b505afa158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115679190613bb2565b73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115ac57600080fd5b505afa1580156115c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e49190613e53565b1561164b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610990565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66116768133611b41565b610b4a8383612e31565b600073ffffffffffffffffffffffffffffffffffffffff8216611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610990565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090205490565b7f11a8cb5a02bd6c42679835e867ef2118ba78f088f8300511420c6603c21d9c786117798133611b41565b6000611784836113be565b905061178f83612e54565b6000838152600e602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055815133815273ffffffffffffffffffffffffffffffffffffffff8416918101919091529081018490527f4831bdd9dcf3048a28319ce81d3cab7a15366bcf449bc7803a539107440809cc906060015b60405180910390a1505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b15801561188c57600080fd5b505afa1580156118a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c49190613bb2565b73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561190957600080fd5b505afa15801561191d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119419190613e53565b156119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610990565b7f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b086119d38133611b41565b600f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168315151790555050565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b158015611a7057600080fd5b505afa158015611a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa89190613bb2565b73ffffffffffffffffffffffffffffffffffffffff1663248a9ca3836040518263ffffffff1660e01b8152600401611ae291815260200190565b60206040518083038186803b158015611afa57600080fd5b505afa158015611b0e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084b9190613e89565b60606002805461086090614328565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b158015611ba757600080fd5b505afa158015611bbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bdf9190613bb2565b6040517f12d9a6ad0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff838116602483015291909116906312d9a6ad9060440160006040518083038186803b158015611c4f57600080fd5b505afa158015611c63573d6000803e3d6000fd5b505050505050565b611a03338383612e94565b6040518060400160405280600481526020017f4641523700000000000000000000000000000000000000000000000000000000815250611cb590614277565b81565b611cc233836127b4565b611d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610990565b610e3c84848484612fc2565b60008181526003602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16611e0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f45524337323155524953746f726167653a2055524920717565727920666f722060448201527f6e6f6e6578697374656e7420746f6b656e0000000000000000000000000000006064820152608401610990565b60008281526007602052604081208054611e2790614328565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5390614328565b8015611ea05780601f10611e7557610100808354040283529160200191611ea0565b820191906000526020600020905b815481529060010190602001808311611e8357829003601f168201915b505050505090506000611ebe60408051602081019091526000815290565b9050805160001415611ed1575092915050565b815115611f03578082604051602001611eeb92919061403c565b60405160208183030381529060405292505050919050565b611f0c84613065565b949350505050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6611f3f8133611b41565b611f4b85858585613181565b5050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338cc48316040518163ffffffff1660e01b815260040160206040518083038186803b158015611fb857600080fd5b505afa158015611fcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff09190613bb2565b73ffffffffffffffffffffffffffffffffffffffff16635c975abb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561203557600080fd5b505afa158015612049573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206d9190613e53565b156120d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610990565b7f4f9b89a9b6cdc546eaf48526f2e7efb7f600b99f7342ad4d1bd9a80d2904fdb76120ff8133611b41565b600f5460ff161580612136575073ffffffffffffffffffffffffffffffffffffffff831660009081526010602052604090205460ff165b61219c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4275796572206973206e6f74206f6e207468652077686974656c6973740000006044820152606401610990565b601154610b4a90610100900473ffffffffffffffffffffffffffffffffffffffff168484610ebe565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061225857507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061084b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461084b565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061084b575061084b826121c5565b600081815260056020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190612358826113be565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008281526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1661244f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201527f6578697374656e7420746f6b656e0000000000000000000000000000000000006064820152608401610990565b60008281526007602090815260409091208251610b4a92840190613a23565b80156125a75773ffffffffffffffffffffffffffffffffffffffff8216612517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603c60248201527f726563656976657220697320746865207a65726f206164647265737320666f7260448201527f20706f73697469766520726f79616c74792070657263656e74616765000000006064820152608401610990565b606481106125a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e6e6f742073657420726f79616c74792070657263656e7461676520746f60448201527f203e3d20313030000000000000000000000000000000000000000000000000006064820152608401610990565b6000838152600b6020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155600a8352928190208490558051868152918201929092529081018290527fb8606c0abc7e08e7379e6f4578b0f1b3ff09f62b35f8ff7f0f3cfa904b889b1790606001611819565b6040518060400160405280601b81526020017f466172616e646f6c6520537570657241646d696e416464726573730000000000815250805190602001208173ffffffffffffffffffffffffffffffffffffffff166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156126c357600080fd5b505afa1580156126d7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261271d9190810190613f01565b80519060200120146127b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f547279696e6720746f20736574207468652077726f6e6720636f6e747261637460448201527f20616464726573730000000000000000000000000000000000000000000000006064820152608401610990565b50565b60008181526003602052604081205473ffffffffffffffffffffffffffffffffffffffff16612865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152608401610990565b6000612870836113be565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806128de575073ffffffffffffffffffffffffffffffffffffffff80821660009081526006602090815260408083209388168352929052205460ff165b80611f0c57508373ffffffffffffffffffffffffffffffffffffffff16612904846108e3565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff16612943826113be565b73ffffffffffffffffffffffffffffffffffffffff16146129e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610990565b73ffffffffffffffffffffffffffffffffffffffff8216612a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610990565b612a9383838361330a565b612a9e6000826122fe565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600460205260408120805460019290612ad4908490614260565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260408120805460019290612b0f9084906141f7565b909155505060008181526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b8015612cce5773ffffffffffffffffffffffffffffffffffffffff8216612c3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603c60248201527f726563656976657220697320746865207a65726f206164647265737320666f7260448201527f20706f73697469766520726f79616c74792070657263656e74616765000000006064820152608401610990565b60648110612cce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f63616e6e6f742073657420726f79616c74792070657263656e7461676520746f60448201527f203e3d20313030000000000000000000000000000000000000000000000000006064820152608401610990565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416908117909155600882905560408051918252602082018390527f6fa9e0da6973f96fb2665a81ba596d56fa92dc16f5e888ee4c8ec61c888b26ab910160405180910390a15050565b60095460085473ffffffffffffffffffffffffffffffffffffffff90911690600090606490612d829085614223565b612d8c919061420f565b90509250929050565b60005b82811015610e3c578160106000868685818110612db757612db7614427565b9050602002016020810190612dcc9190613b95565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001691151591909117905580612e298161437c565b915050612d98565b6000612e3c600d5490565b612e479060016141f7565b9050610b4a83828461337f565b612e5d81613393565b60008181526007602052604090208054612e7690614328565b1590506127b15760008181526007602052604081206127b191613aa7565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612f2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610990565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526006602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612fcd848484612923565b612fd98484848461346c565b610e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610990565b60008181526003602052604090205460609073ffffffffffffffffffffffffffffffffffffffff16613119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152608401610990565b600061313060408051602081019091526000815290565b905060008151116131505760405180602001604052806000815250611346565b8061315a8461366b565b60405160200161316b92919061403c565b6040516020818303038152906040529392505050565b828114801561318f57508215155b61321b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f617272617973206f662061646472657373657320616e6420757269732068617660448201527f6520696e636f72726563742073697a65730000000000000000000000000000006064820152608401610990565b6000613226600d5490565b6132319060016141f7565b905060008461323f600d5490565b61324991906141f7565b9050815b818111613301576132ef87876132638685614260565b81811061327257613272614427565b90506020020160208101906132879190613b95565b8287876132948884614260565b8181106132a3576132a3614427565b90506020028101906132b591906140fd565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061337f92505050565b806132f98161437c565b91505061324d565b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff831661335457600c80549060006133358361437c565b9091555050600d805490600061334a8361437c565b9190505550505050565b73ffffffffffffffffffffffffffffffffffffffff8216610b4a57600c805490600061334a836142f3565b613389838361379d565b610b4a828261239e565b600061339e826113be565b90506133ac8160008461330a565b6133b76000836122fe565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604081208054600192906133ed908490614260565b909155505060008281526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600073ffffffffffffffffffffffffffffffffffffffff84163b15613660576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906134e390339089908890889060040161406b565b602060405180830381600087803b1580156134fd57600080fd5b505af192505050801561354b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261354891810190613ee4565b60015b613615573d808015613579576040519150601f19603f3d011682016040523d82523d6000602084013e61357e565b606091505b50805161360d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610990565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611f0c565b506001949350505050565b6060816136ab57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156136d557806136bf8161437c565b91506136ce9050600a8361420f565b91506136af565b60008167ffffffffffffffff8111156136f0576136f0614456565b6040519080825280601f01601f19166020018201604052801561371a576020820181803683370190505b5090505b8415611f0c5761372f600183614260565b915061373c600a866143b5565b6137479060306141f7565b60f81b81838151811061375c5761375c614427565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350613796600a8661420f565b945061371e565b611a038282604051806020016040528060008152506137bc8383613855565b6137c9600084848461346c565b610b4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610990565b73ffffffffffffffffffffffffffffffffffffffff82166138d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610990565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff161561395e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610990565b61396a6000838361330a565b73ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054600192906139a09084906141f7565b909155505060008181526003602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054613a2f90614328565b90600052602060002090601f016020900481019282613a515760008555613a97565b82601f10613a6a57805160ff1916838001178555613a97565b82800160010185558215613a97579182015b82811115613a97578251825591602001919060010190613a7c565b50613aa3929150613add565b5090565b508054613ab390614328565b6000825580601f10613ac3575050565b601f0160209004906000526020600020908101906127b191905b5b80821115613aa35760008155600101613ade565b6000613b05613b00846141b1565b614162565b9050828152838383011115613b1957600080fd5b828260208301376000602084830101529392505050565b60008083601f840112613b4257600080fd5b50813567ffffffffffffffff811115613b5a57600080fd5b6020830191508360208260051b850101111561102357600080fd5b600082601f830112613b8657600080fd5b61134683833560208501613af2565b600060208284031215613ba757600080fd5b813561134681614485565b600060208284031215613bc457600080fd5b815161134681614485565b60008060408385031215613be257600080fd5b8235613bed81614485565b91506020830135613bfd81614485565b809150509250929050565b600080600060608486031215613c1d57600080fd5b8335613c2881614485565b92506020840135613c3881614485565b929592945050506040919091013590565b60008060008060808587031215613c5f57600080fd5b8435613c6a81614485565b93506020850135613c7a81614485565b925060408501359150606085013567ffffffffffffffff811115613c9d57600080fd5b8501601f81018713613cae57600080fd5b613cbd87823560208401613af2565b91505092959194509250565b60008060408385031215613cdc57600080fd5b8235613ce781614485565b91506020830135613bfd816144a7565b60008060408385031215613d0a57600080fd5b8235613d1581614485565b9150602083013567ffffffffffffffff811115613d3157600080fd5b613d3d85828601613b75565b9150509250929050565b60008060408385031215613d5a57600080fd5b8235613d6581614485565b946020939093013593505050565b60008060008060408587031215613d8957600080fd5b843567ffffffffffffffff80821115613da157600080fd5b613dad88838901613b30565b90965094506020870135915080821115613dc657600080fd5b50613dd387828801613b30565b95989497509550505050565b600080600060408486031215613df457600080fd5b833567ffffffffffffffff811115613e0b57600080fd5b613e1786828701613b30565b9094509250506020840135613e2b816144a7565b809150509250925092565b600060208284031215613e4857600080fd5b8135611346816144a7565b600060208284031215613e6557600080fd5b8151611346816144a7565b600060208284031215613e8257600080fd5b5035919050565b600060208284031215613e9b57600080fd5b5051919050565b60008060408385031215613eb557600080fd5b823591506020830135613bfd81614485565b600060208284031215613ed957600080fd5b8135611346816144b5565b600060208284031215613ef657600080fd5b8151611346816144b5565b600060208284031215613f1357600080fd5b815167ffffffffffffffff811115613f2a57600080fd5b8201601f81018413613f3b57600080fd5b8051613f49613b00826141b1565b818152856020838501011115613f5e57600080fd5b613f6f8260208301602086016142c7565b95945050505050565b600080600060608486031215613f8d57600080fd5b833592506020840135613c3881614485565b60008060408385031215613fb257600080fd5b82359150602083013567ffffffffffffffff811115613d3157600080fd5b60008060408385031215613fe357600080fd5b50508035926020909101359150565b6000815180845261400a8160208601602086016142c7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000835161404e8184602088016142c7565b8351908301906140628183602088016142c7565b01949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526140aa6080830184613ff2565b9695505050505050565b6020815260006113466020830184613ff2565b6060815260006140da6060830186613ff2565b82810360208401526140ec8186613ff2565b915050826040830152949350505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261413257600080fd5b83018035915067ffffffffffffffff82111561414d57600080fd5b60200191503681900382131561102357600080fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156141a9576141a9614456565b604052919050565b600067ffffffffffffffff8211156141cb576141cb614456565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b6000821982111561420a5761420a6143c9565b500190565b60008261421e5761421e6143f8565b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561425b5761425b6143c9565b500290565b600082821015614272576142726143c9565b500390565b6000815160208301517fffffffff00000000000000000000000000000000000000000000000000000000808216935060048310156142bf5780818460040360031b1b83161693505b505050919050565b60005b838110156142e25781810151838201526020016142ca565b83811115610e3c5750506000910152565b600081614302576143026143c9565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600181811c9082168061433c57607f821691505b60208210811415614376577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156143ae576143ae6143c9565b5060010190565b6000826143c4576143c46143f8565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff811681146127b157600080fd5b80151581146127b157600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000811681146127b157600080fdfea264697066735822122007739397501d4bc638a185bad256a68833dac38085c3ee2cd77a91f76350a86f64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000201d79faff10dbd2ae2b47d6b2ff9b7c52cf2ee30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000201d79faff10dbd2ae2b47d6b2ff9b7c52cf2ee3000000000000000000000000e17deaa10d14fcd35842127bba89c35c195416900000000000000000000000000000000000000000000000000000000000000018466172616e646f6c652078204d6169736f6e20426f7565790000000000000000000000000000000000000000000000000000000000000000000000000000000e4641525f434f4c4c454354494f4e000000000000000000000000000000000000
Constructor Arguments
(ABI-Encoded and is the last bytes of the Contract Creation Code above)
0xa264697066735822122007739397501d4bc638a185bad256a68833dac38085c3ee2cd77a91f76350a86f64736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000201d79faff10dbd2ae2b47d6b2ff9b7c52cf2ee30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000201d79faff10dbd2ae2b47d6b2ff9b7c52cf2ee3000000000000000000000000e17deaa10d14fcd35842127bba89c35c195416900000000000000000000000000000000000000000000000000000000000000018466172616e646f6c652078204d6169736f6e20426f7565790000000000000000000000000000000000000000000000000000000000000000000000000000000e4641525f434f4c4c454354494f4e000000000000000000000000000000000000