Overview ERC721
Total Supply:
1,224 DK

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

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

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No

Created At:
Tue, 26 Apr 2022 17:56:32 GMT
dwarf.sol
dwarf.sol
Address.sol
Context.sol
Counters.sol
dwarf.sol
ERC165.sol
ERC721.sol
IERC165.sol
IERC2981.sol
IERC721.sol
IERC721Metadata.sol
IERC721Receiver.sol
Ownable.sol
Strings.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "symbol",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_BASE_URI",
        "type": "string"
      },
      {
        "internalType": "address",
        "name": "passContractAddress",
        "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": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "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": "IS_OG_SALE_ACTIVE",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "IS_PRE_SALE_ACTIVE",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "IS_PUBLIC_SALE_ACTIVE",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_SUPPLY",
    "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": [
      {
        "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": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "quantity",
        "type": "uint256"
      }
    ],
    "name": "ogSale",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "numberOfTokens",
        "type": "uint256"
      }
    ],
    "name": "ownerMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "quantity",
        "type": "uint256"
      }
    ],
    "name": "preSale",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "quantity",
        "type": "uint256"
      }
    ],
    "name": "publicSale",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "royaltyAmount",
        "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": "newUri",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_contractAddress",
        "type": "address"
      }
    ],
    "name": "setPassContractAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint24",
        "name": "value",
        "type": "uint24"
      }
    ],
    "name": "setRoyalties",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "toggleOGSale",
    "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": [],
    "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"
  },
  {
    "inputs": [],
    "name": "withdrawFunds",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
6080604052670de0b6b3a7640000600955671158e460913d0000600a556714d1120d7b160000600b556000600c60006101000a81548160ff0219169083151502179055506000600c60016101000a81548160ff0219169083151502179055506000600c60026101000a81548160ff0219169083151502179055506101f4600e60146101000a81548162ffffff021916908362ffffff160217905550348015620000a757600080fd5b50604051620052c0380380620052c08339818101604052810190620000cd9190620003bb565b83838160009080519060200190620000e792919062000282565b5080600190805190602001906200010092919062000282565b50505062000123620001176200019e60201b60201c565b620001a660201b60201c565b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600890805190602001906200017c92919062000282565b506200019460076200026c60201b620021f11760201c565b5050505062000630565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001816000016000828254019250508190555050565b82805462000290906200053b565b90600052602060002090601f016020900481019282620002b4576000855562000300565b82601f10620002cf57805160ff191683800117855562000300565b8280016001018555821562000300579182015b82811115620002ff578251825591602001919060010190620002e2565b5b5090506200030f919062000313565b5090565b5b808211156200032e57600081600090555060010162000314565b5090565b60006200034962000343846200049b565b62000472565b9050828152602081018484840111156200036257600080fd5b6200036f84828562000505565b509392505050565b600081519050620003888162000616565b92915050565b600082601f830112620003a057600080fd5b8151620003b284826020860162000332565b91505092915050565b60008060008060808587031215620003d257600080fd5b600085015167ffffffffffffffff811115620003ed57600080fd5b620003fb878288016200038e565b945050602085015167ffffffffffffffff8111156200041957600080fd5b62000427878288016200038e565b935050604085015167ffffffffffffffff8111156200044557600080fd5b62000453878288016200038e565b9250506060620004668782880162000377565b91505092959194509250565b60006200047e62000491565b90506200048c828262000571565b919050565b6000604051905090565b600067ffffffffffffffff821115620004b957620004b8620005d6565b5b620004c48262000605565b9050602081019050919050565b6000620004de82620004e5565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b838110156200052557808201518184015260208101905062000508565b8381111562000535576000848401525b50505050565b600060028204905060018216806200055457607f821691505b602082108114156200056b576200056a620005a7565b5b50919050565b6200057c8262000605565b810181811067ffffffffffffffff821117156200059e576200059d620005d6565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6200062181620004d1565b81146200062d57600080fd5b50565b614c8080620006406000396000f3fe6080604052600436106101ee5760003560e01c8063715018a61161010d578063bb20b543116100a0578063e222c7f91161006f578063e222c7f914610687578063e94d75f31461069e578063e985e9c5146106c9578063f19e75d414610706578063f2fde38b1461072f576101ee565b8063bb20b543146105df578063c6e6c8711461060a578063c87b56dd14610633578063ca3cb52214610670576101ee565b806399800185116100dc578063998001851461055a578063a22cb46514610571578063b287c8ed1461059a578063b88d4fde146105b6576101ee565b8063715018a6146104c25780638da5cb5b146104d95780638e70d2741461050457806395d89b411461052f576101ee565b806324600fc31161018557806355f804b31161015457806355f804b3146104035780636352211e1461042c57806367418fc21461046957806370a0823114610485576101ee565b806324600fc31461035a5780632a55205a1461037157806332cb6b0c146103af57806342842e0e146103da576101ee565b80630c153b49116101c15780630c153b49146102c1578063131f4104146102ea57806318160ddd1461030657806323b872dd14610331576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a6004803603810190610215919061367f565b610758565b6040516102279190613ccf565b60405180910390f35b34801561023c57600080fd5b506102456107d2565b6040516102529190613cea565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613712565b610864565b60405161028f9190613c3f565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba91906135d9565b6108e9565b005b3480156102cd57600080fd5b506102e860048036038101906102e39190613432565b610a01565b005b61030460048036038101906102ff9190613712565b610ac1565b005b34801561031257600080fd5b5061031b610f90565b604051610328919061408c565b60405180910390f35b34801561033d57600080fd5b5061035860048036038101906103539190613497565b610fad565b005b34801561036657600080fd5b5061036f61100d565b005b34801561037d57600080fd5b506103986004803603810190610393919061373b565b6110d2565b6040516103a6929190613ca6565b60405180910390f35b3480156103bb57600080fd5b506103c4611132565b6040516103d1919061408c565b60405180910390f35b3480156103e657600080fd5b5061040160048036038101906103fc9190613497565b611138565b005b34801561040f57600080fd5b5061042a600480360381019061042591906136d1565b611158565b005b34801561043857600080fd5b50610453600480360381019061044e9190613712565b6111ee565b6040516104609190613c3f565b60405180910390f35b610483600480360381019061047e9190613712565b6112a0565b005b34801561049157600080fd5b506104ac60048036038101906104a79190613432565b6117b3565b6040516104b9919061408c565b60405180910390f35b3480156104ce57600080fd5b506104d761186b565b005b3480156104e557600080fd5b506104ee6118f3565b6040516104fb9190613c3f565b60405180910390f35b34801561051057600080fd5b5061051961191d565b6040516105269190613ccf565b60405180910390f35b34801561053b57600080fd5b50610544611930565b6040516105519190613cea565b60405180910390f35b34801561056657600080fd5b5061056f6119c2565b005b34801561057d57600080fd5b5061059860048036038101906105939190613561565b611a6a565b005b6105b460048036038101906105af9190613712565b611a80565b005b3480156105c257600080fd5b506105dd60048036038101906105d891906134e6565b611c58565b005b3480156105eb57600080fd5b506105f4611cba565b6040516106019190613ccf565b60405180910390f35b34801561061657600080fd5b50610631600480360381019061062c919061359d565b611ccd565b005b34801561063f57600080fd5b5061065a60048036038101906106559190613712565b611d57565b6040516106679190613cea565b60405180910390f35b34801561067c57600080fd5b50610685611dfe565b005b34801561069357600080fd5b5061069c611ea6565b005b3480156106aa57600080fd5b506106b3611f4e565b6040516106c09190613ccf565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb919061345b565b611f61565b6040516106fd9190613ccf565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613712565b611ff5565b005b34801561073b57600080fd5b5061075660048036038101906107519190613432565b6120f9565b005b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107cb57506107ca82612207565b5b9050919050565b6060600080546107e1906143bf565b80601f016020809104026020016040519081016040528092919081815260200182805461080d906143bf565b801561085a5780601f1061082f5761010080835404028352916020019161085a565b820191906000526020600020905b81548152906001019060200180831161083d57829003601f168201915b5050505050905090565b600061086f826122e9565b6108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a590613f6c565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108f4826111ee565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095c9061400c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610984612355565b73ffffffffffffffffffffffffffffffffffffffff1614806109b357506109b2816109ad612355565b611f61565b5b6109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e990613ecc565b60405180910390fd5b6109fc838361235d565b505050565b610a09612355565b73ffffffffffffffffffffffffffffffffffffffff16610a276118f3565b73ffffffffffffffffffffffffffffffffffffffff1614610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490613fac565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b269061402c565b60405180910390fd5b600c60019054906101000a900460ff16610b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7590613f8c565b60405180910390fd5b6000610b8a6007612416565b9050611a0a8282610b9b919061419d565b10610bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd290613e8c565b60405180910390fd5b610be782600a54612424565b341015610c29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2090613d2c565b60405180910390fd5b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c336040518263ffffffff1660e01b8152600401610c879190613c3f565b60006040518083038186803b158015610c9f57600080fd5b505afa158015610cb3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190610cdc9190613615565b905060005b8151811015610eca57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634878f78f838381518110610d61577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b8152600401610d85919061408c565b602060405180830381600087803b158015610d9f57600080fd5b505af1158015610db3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd79190613656565b610eb757600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68838381518110610e52577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b8152600401610e76919061408c565b600060405180830381600087803b158015610e9057600080fd5b505af1158015610ea4573d6000803e3d6000fd5b505050508280610eb39061446b565b9350505b8080610ec290614422565b915050610ce1565b5060008260ff1611610f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0890613e4c565b60405180910390fd5b83600583610f1f919061427e565b60ff161015610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a90613f2c565b60405180910390fd5b60005b84811015610f8957610f7661246a565b8080610f8190614422565b915050610f66565b5050505050565b60006001610f9e6007612416565b610fa891906142b9565b905090565b610fbe610fb8612355565b826124e4565b610ffd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff49061404c565b60405180910390fd5b6110088383836125c2565b505050565b611015612355565b73ffffffffffffffffffffffffffffffffffffffff166110336118f3565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090613fac565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156110cf573d6000803e3d6000fd5b50565b600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150612710600e60149054906101000a900462ffffff1662ffffff168461111f9190614224565b61112991906141f3565b90509250929050565b611a0a81565b61115383838360405180602001604052806000815250611c58565b505050565b611160612355565b73ffffffffffffffffffffffffffffffffffffffff1661117e6118f3565b73ffffffffffffffffffffffffffffffffffffffff16146111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90613fac565b60405180910390fd5b80600890805190602001906111ea929190613181565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128e90613f0c565b60405180910390fd5b80915050919050565b3273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461130e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113059061402c565b60405180910390fd5b600c60009054906101000a900460ff1661135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613dec565b60405180910390fd5b60006113696007612416565b9050600082116113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590613d4c565b60405180910390fd5b611a0a82826113bd919061419d565b106113fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f490613e8c565b60405180910390fd5b61140982600954612424565b34101561144b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144290613d2c565b60405180910390fd5b600080600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638462151c336040518263ffffffff1660e01b81526004016114a99190613c3f565b60006040518083038186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114fe9190613615565b905060005b81518110156116ed57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634878f78f838381518110611583577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b81526004016115a7919061408c565b602060405180830381600087803b1580156115c157600080fd5b505af11580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f99190613656565b156116da57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342966c68838381518110611675577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101516040518263ffffffff1660e01b8152600401611699919061408c565b600060405180830381600087803b1580156116b357600080fd5b505af11580156116c7573d6000803e3d6000fd5b5050505082806116d69061446b565b9350505b80806116e590614422565b915050611503565b5060008260ff1611611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90613d0c565b60405180910390fd5b83600583611742919061427e565b60ff161015611786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177d90613f2c565b60405180910390fd5b60005b848110156117ac5761179961246a565b80806117a490614422565b915050611789565b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181b90613eec565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611873612355565b73ffffffffffffffffffffffffffffffffffffffff166118916118f3565b73ffffffffffffffffffffffffffffffffffffffff16146118e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118de90613fac565b60405180910390fd5b6118f1600061281e565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c60019054906101000a900460ff1681565b60606001805461193f906143bf565b80601f016020809104026020016040519081016040528092919081815260200182805461196b906143bf565b80156119b85780601f1061198d576101008083540402835291602001916119b8565b820191906000526020600020905b81548152906001019060200180831161199b57829003601f168201915b5050505050905090565b6119ca612355565b73ffffffffffffffffffffffffffffffffffffffff166119e86118f3565b73ffffffffffffffffffffffffffffffffffffffff1614611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590613fac565b60405180910390fd5b600c60009054906101000a900460ff1615600c60006101000a81548160ff021916908315150217905550565b611a7c611a75612355565b83836128e4565b5050565b3273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061402c565b60405180910390fd5b600c60029054906101000a900460ff16611b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3490613e6c565b60405180910390fd5b6000611b496007612416565b9050611a0a8282611b5a919061419d565b10611b9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9190613e8c565b60405180910390fd5b600a8210611bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd490613dcc565b60405180910390fd5b81600b54611beb9190614224565b341015611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490613d2c565b60405180910390fd5b60005b82811015611c5357611c4061246a565b8080611c4b90614422565b915050611c30565b505050565b611c69611c63612355565b836124e4565b611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f9061404c565b60405180910390fd5b611cb484848484612a51565b50505050565b600c60009054906101000a900460ff1681565b611cd5612355565b73ffffffffffffffffffffffffffffffffffffffff16611cf36118f3565b73ffffffffffffffffffffffffffffffffffffffff1614611d49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4090613fac565b60405180910390fd5b611d538282612aad565b5050565b6060611d62826122e9565b611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890613fec565b60405180910390fd5b6000611dab612b5b565b90506000815111611dcb5760405180602001604052806000815250611df6565b80611dd584612bed565b604051602001611de6929190613c1b565b6040516020818303038152906040525b915050919050565b611e06612355565b73ffffffffffffffffffffffffffffffffffffffff16611e246118f3565b73ffffffffffffffffffffffffffffffffffffffff1614611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190613fac565b60405180910390fd5b600c60019054906101000a900460ff1615600c60016101000a81548160ff021916908315150217905550565b611eae612355565b73ffffffffffffffffffffffffffffffffffffffff16611ecc6118f3565b73ffffffffffffffffffffffffffffffffffffffff1614611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990613fac565b60405180910390fd5b600c60029054906101000a900460ff1615600c60026101000a81548160ff021916908315150217905550565b600c60029054906101000a900460ff1681565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611ffd612355565b73ffffffffffffffffffffffffffffffffffffffff1661201b6118f3565b73ffffffffffffffffffffffffffffffffffffffff1614612071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206890613fac565b60405180910390fd5b600061207d6007612416565b9050611a0a828261208e919061419d565b106120ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c590613e8c565b60405180910390fd5b60005b828110156120f4576120e161246a565b80806120ec90614422565b9150506120d1565b505050565b612101612355565b73ffffffffffffffffffffffffffffffffffffffff1661211f6118f3565b73ffffffffffffffffffffffffffffffffffffffff1614612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90613fac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc90613d8c565b60405180910390fd5b6121ee8161281e565b50565b6001816000016000828254019250508190555050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806122d257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806122e257506122e182612d9a565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166123d0836111ee565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6000600183111561245557826703782dace9d900008361244491906142b9565b61244e9190614224565b9050612464565b81836124619190614224565b90505b92915050565b60006124766007612416565b905061248260076121f1565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906124d290614422565b91905055506124e13382612e04565b50565b60006124ef826122e9565b61252e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161252590613eac565b60405180910390fd5b6000612539836111ee565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806125a857508373ffffffffffffffffffffffffffffffffffffffff1661259084610864565b73ffffffffffffffffffffffffffffffffffffffff16145b806125b957506125b88185611f61565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166125e2826111ee565b73ffffffffffffffffffffffffffffffffffffffff1614612638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262f90613fcc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269f90613e0c565b60405180910390fd5b6126b3838383612fd2565b6126be60008261235d565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461270e91906142b9565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612765919061419d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612953576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161294a90613e2c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a449190613ccf565b60405180910390a3505050565b612a5c8484846125c2565b612a6884848484612fd7565b612aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9e90613d6c565b60405180910390fd5b50505050565b6127108162ffffff161115612af7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aee9061406c565b60405180910390fd5b80600e60146101000a81548162ffffff021916908362ffffff16021790555081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b606060088054612b6a906143bf565b80601f0160208091040260200160405190810160405280929190818152602001828054612b96906143bf565b8015612be35780601f10612bb857610100808354040283529160200191612be3565b820191906000526020600020905b815481529060010190602001808311612bc657829003601f168201915b5050505050905090565b60606000821415612c35576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612d95565b600082905060005b60008214612c67578080612c5090614422565b915050600a82612c6091906141f3565b9150612c3d565b60008167ffffffffffffffff811115612ca9577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015612cdb5781602001600182028036833780820191505090505b5090505b60008514612d8e57600182612cf491906142b9565b9150600a85612d039190614495565b6030612d0f919061419d565b60f81b818381518110612d4b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612d8791906141f3565b9450612cdf565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e6b90613f4c565b60405180910390fd5b612e7d816122e9565b15612ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612eb490613dac565b60405180910390fd5b612ec960008383612fd2565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612f19919061419d565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b505050565b6000612ff88473ffffffffffffffffffffffffffffffffffffffff1661316e565b15613161578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613021612355565b8786866040518563ffffffff1660e01b81526004016130439493929190613c5a565b602060405180830381600087803b15801561305d57600080fd5b505af192505050801561308e57506040513d601f19601f8201168201806040525081019061308b91906136a8565b60015b613111573d80600081146130be576040519150601f19603f3d011682016040523d82523d6000602084013e6130c3565b606091505b50600081511415613109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161310090613d6c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613166565b600190505b949350505050565b600080823b905060008111915050919050565b82805461318d906143bf565b90600052602060002090601f0160209004810192826131af57600085556131f6565b82601f106131c857805160ff19168380011785556131f6565b828001600101855582156131f6579182015b828111156131f55782518255916020019190600101906131da565b5b5090506132039190613207565b5090565b5b80821115613220576000816000905550600101613208565b5090565b6000613237613232846140cc565b6140a7565b9050808382526020820190508285602086028201111561325657600080fd5b60005b85811015613286578161326c888261341d565b845260208401935060208301925050600181019050613259565b5050509392505050565b60006132a361329e846140f8565b6140a7565b9050828152602081018484840111156132bb57600080fd5b6132c684828561437d565b509392505050565b60006132e16132dc84614129565b6140a7565b9050828152602081018484840111156132f957600080fd5b61330484828561437d565b509392505050565b60008135905061331b81614bd7565b92915050565b600082601f83011261333257600080fd5b8151613342848260208601613224565b91505092915050565b60008135905061335a81614bee565b92915050565b60008151905061336f81614bee565b92915050565b60008135905061338481614c05565b92915050565b60008151905061339981614c05565b92915050565b600082601f8301126133b057600080fd5b81356133c0848260208601613290565b91505092915050565b600082601f8301126133da57600080fd5b81356133ea8482602086016132ce565b91505092915050565b60008135905061340281614c1c565b92915050565b60008135905061341781614c33565b92915050565b60008151905061342c81614c33565b92915050565b60006020828403121561344457600080fd5b60006134528482850161330c565b91505092915050565b6000806040838503121561346e57600080fd5b600061347c8582860161330c565b925050602061348d8582860161330c565b9150509250929050565b6000806000606084860312156134ac57600080fd5b60006134ba8682870161330c565b93505060206134cb8682870161330c565b92505060406134dc86828701613408565b9150509250925092565b600080600080608085870312156134fc57600080fd5b600061350a8782880161330c565b945050602061351b8782880161330c565b935050604061352c87828801613408565b925050606085013567ffffffffffffffff81111561354957600080fd5b6135558782880161339f565b91505092959194509250565b6000806040838503121561357457600080fd5b60006135828582860161330c565b92505060206135938582860161334b565b9150509250929050565b600080604083850312156135b057600080fd5b60006135be8582860161330c565b92505060206135cf858286016133f3565b9150509250929050565b600080604083850312156135ec57600080fd5b60006135fa8582860161330c565b925050602061360b85828601613408565b9150509250929050565b60006020828403121561362757600080fd5b600082015167ffffffffffffffff81111561364157600080fd5b61364d84828501613321565b91505092915050565b60006020828403121561366857600080fd5b600061367684828501613360565b91505092915050565b60006020828403121561369157600080fd5b600061369f84828501613375565b91505092915050565b6000602082840312156136ba57600080fd5b60006136c88482850161338a565b91505092915050565b6000602082840312156136e357600080fd5b600082013567ffffffffffffffff8111156136fd57600080fd5b613709848285016133c9565b91505092915050565b60006020828403121561372457600080fd5b600061373284828501613408565b91505092915050565b6000806040838503121561374e57600080fd5b600061375c85828601613408565b925050602061376d85828601613408565b9150509250929050565b613780816142ed565b82525050565b61378f816142ff565b82525050565b60006137a08261415a565b6137aa8185614170565b93506137ba81856020860161438c565b6137c381614582565b840191505092915050565b60006137d982614165565b6137e38185614181565b93506137f381856020860161438c565b6137fc81614582565b840191505092915050565b600061381282614165565b61381c8185614192565b935061382c81856020860161438c565b80840191505092915050565b6000613845601883614181565b915061385082614593565b602082019050919050565b6000613868601083614181565b9150613873826145bc565b602082019050919050565b600061388b601f83614181565b9150613896826145e5565b602082019050919050565b60006138ae603283614181565b91506138b98261460e565b604082019050919050565b60006138d1602683614181565b91506138dc8261465d565b604082019050919050565b60006138f4601c83614181565b91506138ff826146ac565b602082019050919050565b6000613917601183614181565b9150613922826146d5565b602082019050919050565b600061393a601783614181565b9150613945826146fe565b602082019050919050565b600061395d602483614181565b915061396882614727565b604082019050919050565b6000613980601983614181565b915061398b82614776565b602082019050919050565b60006139a3601883614181565b91506139ae8261479f565b602082019050919050565b60006139c6601a83614181565b91506139d1826147c8565b602082019050919050565b60006139e9601483614181565b91506139f4826147f1565b602082019050919050565b6000613a0c602c83614181565b9150613a178261481a565b604082019050919050565b6000613a2f603883614181565b9150613a3a82614869565b604082019050919050565b6000613a52602a83614181565b9150613a5d826148b8565b604082019050919050565b6000613a75602983614181565b9150613a8082614907565b604082019050919050565b6000613a98601e83614181565b9150613aa382614956565b602082019050919050565b6000613abb602083614181565b9150613ac68261497f565b602082019050919050565b6000613ade602c83614181565b9150613ae9826149a8565b604082019050919050565b6000613b01601783614181565b9150613b0c826149f7565b602082019050919050565b6000613b24602083614181565b9150613b2f82614a20565b602082019050919050565b6000613b47602983614181565b9150613b5282614a49565b604082019050919050565b6000613b6a602f83614181565b9150613b7582614a98565b604082019050919050565b6000613b8d602183614181565b9150613b9882614ae7565b604082019050919050565b6000613bb0601283614181565b9150613bbb82614b36565b602082019050919050565b6000613bd3603183614181565b9150613bde82614b5f565b604082019050919050565b6000613bf6601183614181565b9150613c0182614bae565b602082019050919050565b613c1581614366565b82525050565b6000613c278285613807565b9150613c338284613807565b91508190509392505050565b6000602082019050613c546000830184613777565b92915050565b6000608082019050613c6f6000830187613777565b613c7c6020830186613777565b613c896040830185613c0c565b8181036060830152613c9b8184613795565b905095945050505050565b6000604082019050613cbb6000830185613777565b613cc86020830184613c0c565b9392505050565b6000602082019050613ce46000830184613786565b92915050565b60006020820190508181036000830152613d0481846137ce565b905092915050565b60006020820190508181036000830152613d2581613838565b9050919050565b60006020820190508181036000830152613d458161385b565b9050919050565b60006020820190508181036000830152613d658161387e565b9050919050565b60006020820190508181036000830152613d85816138a1565b9050919050565b60006020820190508181036000830152613da5816138c4565b9050919050565b60006020820190508181036000830152613dc5816138e7565b9050919050565b60006020820190508181036000830152613de58161390a565b9050919050565b60006020820190508181036000830152613e058161392d565b9050919050565b60006020820190508181036000830152613e2581613950565b9050919050565b60006020820190508181036000830152613e4581613973565b9050919050565b60006020820190508181036000830152613e6581613996565b9050919050565b60006020820190508181036000830152613e85816139b9565b9050919050565b60006020820190508181036000830152613ea5816139dc565b9050919050565b60006020820190508181036000830152613ec5816139ff565b9050919050565b60006020820190508181036000830152613ee581613a22565b9050919050565b60006020820190508181036000830152613f0581613a45565b9050919050565b60006020820190508181036000830152613f2581613a68565b9050919050565b60006020820190508181036000830152613f4581613a8b565b9050919050565b60006020820190508181036000830152613f6581613aae565b9050919050565b60006020820190508181036000830152613f8581613ad1565b9050919050565b60006020820190508181036000830152613fa581613af4565b9050919050565b60006020820190508181036000830152613fc581613b17565b9050919050565b60006020820190508181036000830152613fe581613b3a565b9050919050565b6000602082019050818103600083015261400581613b5d565b9050919050565b6000602082019050818103600083015261402581613b80565b9050919050565b6000602082019050818103600083015261404581613ba3565b9050919050565b6000602082019050818103600083015261406581613bc6565b9050919050565b6000602082019050818103600083015261408581613be9565b9050919050565b60006020820190506140a16000830184613c0c565b92915050565b60006140b16140c2565b90506140bd82826143f1565b919050565b6000604051905090565b600067ffffffffffffffff8211156140e7576140e6614553565b5b602082029050602081019050919050565b600067ffffffffffffffff82111561411357614112614553565b5b61411c82614582565b9050602081019050919050565b600067ffffffffffffffff82111561414457614143614553565b5b61414d82614582565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006141a882614366565b91506141b383614366565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156141e8576141e76144c6565b5b828201905092915050565b60006141fe82614366565b915061420983614366565b925082614219576142186144f5565b5b828204905092915050565b600061422f82614366565b915061423a83614366565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614273576142726144c6565b5b828202905092915050565b600061428982614370565b915061429483614370565b92508160ff04831182151516156142ae576142ad6144c6565b5b828202905092915050565b60006142c482614366565b91506142cf83614366565b9250828210156142e2576142e16144c6565b5b828203905092915050565b60006142f882614337565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062ffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b838110156143aa57808201518184015260208101905061438f565b838111156143b9576000848401525b50505050565b600060028204905060018216806143d757607f821691505b602082108114156143eb576143ea614524565b5b50919050565b6143fa82614582565b810181811067ffffffffffffffff8211171561441957614418614553565b5b80604052505050565b600061442d82614366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156144605761445f6144c6565b5b600182019050919050565b600061447682614370565b915060ff82141561448a576144896144c6565b5b600182019050919050565b60006144a082614366565b91506144ab83614366565b9250826144bb576144ba6144f5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f596f752068617665206e6f7420476f6c64656e20506173730000000000000000600082015250565b7f4e6f7420656e6f756768206d6f6e657900000000000000000000000000000000600082015250565b7f5175616e74697479206d7573742062652067726574616572207468616e203000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4578636565647320616c6c6f77616e6365000000000000000000000000000000600082015250565b7f4f472073616c6520686176656e27742073746172746564000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f596f752068617665206e6f742053696c76657220506173730000000000000000600082015250565b7f5075626c696373616c6520686176656e27742073746172746564000000000000600082015250565b7f4578636565647320746f74616c20737570706c79000000000000000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f596f7520646f6e74206861766520656e6f756768206d696e7420706173730000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f50726573616c6520686176656e27742073746172746564000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420616c6c6f776564206f726967696e0000000000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f526f79616c747920746f6f20686967682e000000000000000000000000000000600082015250565b614be0816142ed565b8114614beb57600080fd5b50565b614bf7816142ff565b8114614c0257600080fd5b50565b614c0e8161430b565b8114614c1957600080fd5b50565b614c2581614357565b8114614c3057600080fd5b50565b614c3c81614366565b8114614c4757600080fd5b5056fea2646970667358221220dde61c37e1ec30e5359b0e9e5df940f9810fbce1a75ae361f91b258a30e7bfcf64736f6c63430008040033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000029267697d2ff7eff7cd83175a109adba7aa7a91f000000000000000000000000000000000000000000000000000000000000000d4477617266204b6e6967687473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002444b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001d68747470733a2f2f6170692e64776172666b6e69676874732e636f6d2f000000