{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC721FullProxied",
  "sourceName": "contracts/token/ERC721/preset/proxied/ERC721FullProxied.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "ERC2981IncorrectRoyaltyPercentage",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC2981IncorrectRoyaltyReceiver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721BalanceOfAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721ExistingToken",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonApprovedForApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonApprovedForTransfer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonExistingToken",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721NonOwnedToken",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ERC721SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC721SelfApproval",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC721SelfApprovalForAll",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC721TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        }
      ],
      "name": "IncorrectTokenContractType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "OperatorNotAllowed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "SafeERC20FailedOperation",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "approved",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "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": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ROYALTY_FEE_DENOMINATOR",
      "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": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "batchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "deliver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getApproved",
      "outputs": [
        {
          "internalType": "address",
          "name": "approved",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "hasRole_",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "metadataResolver",
          "type": "address"
        },
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "filterRegistry",
          "type": "address"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "approvedForAll",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "metadataResolver",
      "outputs": [
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "tokenMetadataResolver",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "operatorFilterRegistry",
      "outputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "ownerOf",
      "outputs": [
        {
          "internalType": "address",
          "name": "tokenOwner",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC721[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "setRoyaltyPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "setRoyaltyReceiver",
      "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": "tokenSymbol",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "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": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "registry",
          "type": "address"
        }
      ],
      "name": "updateOperatorFilterRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034607457601f61418638819003918201601f19168301916001600160401b03831184841017607957808492602094604052833981010312607457516001600160a01b03811681036074576080526040516140f69081610090823960805181818161231a015281816135850152613df20152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146131c657806306fdde031461316b578063081812fc1461310e578063095ea7b314612e7a5780630e07f854146125c0578063114ba8ee146124d957806323b872dd146124315780632a55205a1461233e5780632b4c9f16146122cf5780632f2ff15d1461214357806340c10f19146120b357806342842e0e14611fe35780634684d7e914611e03578063572b6c0514611db857806361ba27da14611c9c5780636352211e14611c2157806370a0823114611b5757806373c8a958146119a75780638832e6e3146117595780638bb9c5bf146115ea5780638da5cb5b146115795780638dc251e31461144c57806391d14854146113b457806395d89b41146113455780639da5e8321461121b578063a0c76f62146111aa578063a22cb4651461104a578063b0ccc31e14610fd9578063b88d4fde14610eb7578063c3666c3614610c7a578063c87b56dd14610ac7578063d539139314610a6e578063d547741f146108e5578063e1a8bf2c146108a9578063e985e9c5146107f5578063f2fde38b14610701578063f3993d111461037b5763f7ba94bd146101be57600080fd5b3461031f576101cc3661345d565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061020d613ddb565b925416911690810361034e57508181036103245760005b81811061022d57005b610238818387613be5565b3573ffffffffffffffffffffffffffffffffffffffff811680910361031f57610262828587613be5565b35908147106102ed57600080809381935af13d156102e5573d90610285826135cd565b9161029360405193846134c9565b82523d6000602084013e5b156102ac5750600101610224565b8051156102bb57602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b60609061029e565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461031f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576103b26132b3565b6103ba6132d6565b9060443567ffffffffffffffff811161031f576103db903690600401613399565b926103e4613ddb565b907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308273ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff8216036106f1575b505073ffffffffffffffffffffffffffffffffffffffff7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091169384156106c7576104898382849694613eef565b9373ffffffffffffffffffffffffffffffffffffffff600095159216945b87811061050c578787878181141580610503575b6104c157005b60009081527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040808220805485900390559181522080549091019055005b508215156104bb565b610517818986613be5565b35806000528260205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106995788036106675784610590575b509081600192600052836020528860406000205588887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4016104a7565b7401000000000000000000000000000000000000000016158015610604575b6105b9578961054f565b8673ffffffffffffffffffffffffffffffffffffffff877fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff871614156105af565b50867f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b6106fa91613cf0565b858261043b565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576107386132b3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610762613ddb565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361034e575073ffffffffffffffffffffffffffffffffffffffff16918282036107a657005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5761082c6132b3565b73ffffffffffffffffffffffffffffffffffffffff6108496132d6565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020604051620186a08152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760043561091f6132d6565b610927613ddb565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034e57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166109d957005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610bb96000600435610b28817fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613b8a565b5073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541660405180809581947ff724dad700000000000000000000000000000000000000000000000000000000835230600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03915afa908115610c6e57600091610be6575b60405160208082528190610be290820185613270565b0390f35b3d8083833e610bf581836134c9565b810190602081830312610c665780519067ffffffffffffffff8211610c6a570181601f82011215610c6657805192610c2c846135cd565b92610c3a60405194856134c9565b84845260208584010111610c635750610be292610c5d916020808501910161324d565b90610bcc565b80fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b3461031f57610c88366133ca565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610ccd613ddb565b925416911690810361034e5750808214801590610ead575b6103245760005b828110610cf557005b73ffffffffffffffffffffffffffffffffffffffff610d1d610d1883858a613be5565b613bf5565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa908115610c6e57600091610e7f575b5015610e52575073ffffffffffffffffffffffffffffffffffffffff610dac610d1883858a613be5565b1690610dbc610d18828689613be5565b91610dc882878b613be5565b3592813b1561031f57606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af1918215610c6e57600192610e41575b5001610cec565b6000610e4c916134c9565b88610e3a565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610ea0915060203d8111610ea6575b610e9881836134c9565b810190613c16565b89610d82565b503d610e8e565b5082821415610ce5565b3461031f5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610eee6132b3565b610ef66132d6565b60443560643567ffffffffffffffff811161031f57610f199036906004016132f9565b929093610f24613ddb565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff821603610fc9575b5050610faa848484887fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061378a565b823b610fb257005b610fc795610fc1913691613607565b93613f6f565b005b610fd291613cf0565b8685610f7b565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576110816132b3565b602435908115159182810361031f5761117b575b73ffffffffffffffffffffffffffffffffffffffff806110b3613ddb565b1691169181831461114d5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6111a5817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613cf0565b611095565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b3461031f576112293661345d565b61125b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b906139c3565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0926112868161350a565b9461129460405196876134c9565b818652602086019160051b81019036821161031f57915b81831061131857505050906112c1913691613522565b91805191835183036103245760005b8381106112d957005b8061131273ffffffffffffffffffffffffffffffffffffffff6112fe60019487613b47565b511661130a8389613b47565b519085613a85565b016112d0565b823573ffffffffffffffffffffffffffffffffffffffff8116810361031f578152602092830192016112ab565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610be26113a07f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5613c2e565b604051918291602083526020830190613270565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576113eb6132d6565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576114836132b3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806114c2613ddb565b925416911690810361034e57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff81161561154f5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611645613ddb565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156117115760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610a69565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b3461031f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576117906132b3565b6024359060443567ffffffffffffffff811161031f576117b49036906004016132f9565b916117e17fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b611821848261181b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c095611813613ddb565b973691613607565b94613a85565b803b61182957005b73ffffffffffffffffffffffffffffffffffffffff80602092169361189660405194859384937f150b7a0200000000000000000000000000000000000000000000000000000000855216600484015260006024840152876044840152608060648401526084830190613270565b03816000865af1908115610c6e57600091611928575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036118f857005b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d60201161199f575b81611941602093836134c9565b8101031261199b5751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610c6357507fffffffff000000000000000000000000000000000000000000000000000000006118ac565b5080fd5b3d9150611934565b3461031f576119b5366133ca565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806119f8613ddb565b925416911690810361034e5750808414801590611b4d575b6103245760005b848110611a2057005b611a2b818388613be5565b3573ffffffffffffffffffffffffffffffffffffffff81169081810361031f576000602091611a5e610d18868b8e613be5565b82611ac8611af4611a70898d8d613be5565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826134c9565b51925af115610c6e576000513d611b445750803b155b611b175750600101611a17565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611b0a565b5082841415611a10565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57611b8e6132b3565b73ffffffffffffffffffffffffffffffffffffffff811615611bf75773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020611c7e6004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613b8a565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611d0d613ddb565b925416911690810361034e57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a08111611d8b57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020611df9611df46132b3565b61356e565b6040519015158152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57611e3a6132b3565b60243567ffffffffffffffff811161031f5773ffffffffffffffffffffffffffffffffffffffff611e72611ec9923690600401613399565b9290611ea07fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0933691613522565b9216908115611fb95782519260005b848110611f19575050506000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154019055600080f35b611f238183613b47565b51806000528360205273ffffffffffffffffffffffffffffffffffffffff60406000205416611f8c57908160019260005284602052856040600020558560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a401611ed8565b7f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f7851b9cd0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461031f57611ff136613327565b611ff9613ddb565b917f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308373ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff8216036120a3575b505061207f828286867fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061378a565b803b61208757005b610fc7936040519361209a6020866134c9565b60008552613f6f565b6120ac91613cf0565b8483612050565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610fc76120ed6132b3565b6121197fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613a85565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760043561217d6132d6565b612185613ddb565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034e57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561223857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610a69565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c9080158015612429575b156123f3575050610be260005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b610be291620186a08210156124165761241090620186a092613981565b046123c3565b620186a06124249204613981565b6123c3565b5081156123b6565b3461031f57610fc761244236613327565b9161244b613ddb565b7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308173ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff8216036124c9575b50507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061378a565b6124d291613cf0565b85816124a1565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576125106132b3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061254f613ddb565b925416911690810361034e575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b3461031f5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760043567ffffffffffffffff811161031f5761260f9036906004016132f9565b60243567ffffffffffffffff811161031f5761262f9036906004016132f9565b6044939193359173ffffffffffffffffffffffffffffffffffffffff8316830361031f576064359373ffffffffffffffffffffffffffffffffffffffff8516850361031f577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc61269d613ddb565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612b39575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081612e25575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780548216831790557f98ea984a1dd4b0fbb2764a2a70a93d7e6137ea3c70db196cc96460f50c0d1a1f80548216831790557f70a1033a668c0b93d699f00f1cf02b517801b7285ead3ea5fa8d9b43f89ed57180548216831790557f4f521d2bc326c534847f496e961505200b8e61c57a75e48fd6b97dc560e2c5a480548216831790557f0845b122e17f0ee9a0d1d2feeec009013976e8c85c80079e88858099492b187280548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612b39575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612cf65781906129258454613737565b601f8111612dd2575b50600090601f8311600114612d3057600092612d25575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612cf6576129b07f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613737565b601f8111612c72575b506000601f8211600114612b765781929394600092612b6b575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612b39575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b0135905084806129d3565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612c5a575083600195969710612c22575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612a25565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612bf5565b90926020600181928686013581550194019101612be1565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612cec575b601f0160051c01905b818110612ce057506129b9565b60008155600101612cd3565b9091508190612cca565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612945565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612dba5750908460019594939210612d82575b505050811b019055612977565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612d75565b91936020600181928787013581550195019201612d5f565b909150836000526020600020601f840160051c81019160208510612e1b575b90601f859493920160051c01905b818110612e0c575061292e565b60008155849350600101612dff565b9091508190612df1565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3868061270a565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57612eb16132b3565b6024359073ffffffffffffffffffffffffffffffffffffffff81169081159081156130de575b507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0612f01613ddb565b9184600052816020526040600020549073ffffffffffffffffffffffffffffffffffffffff82169384156130b05784861461308257612f41818686613eef565b15613036575015612fa5577401000000000000000000000000000000000000000016612f91575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b836000526020528060406000205583612f68565b90740100000000000000000000000000000000000000008217809203613022575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055612f6a565b846000526020526040600020558380612fc6565b8473ffffffffffffffffffffffffffffffffffffffff88927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b847fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613108907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613cf0565b83612ed7565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020611c7e6004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06136c8565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610be26113a07f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4613c2e565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361031f57611df96020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d61363e565b60005b8381106132605750506000910152565b8181015183820152602001613250565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936132ac8151809281875287808801910161324d565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361031f57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361031f57565b9181601f8401121561031f5782359167ffffffffffffffff831161031f576020838186019501011161031f57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261031f5760043573ffffffffffffffffffffffffffffffffffffffff8116810361031f579060243573ffffffffffffffffffffffffffffffffffffffff8116810361031f579060443590565b9181601f8401121561031f5782359167ffffffffffffffff831161031f576020808501948460051b01011161031f57565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261031f5760043567ffffffffffffffff811161031f578161341391600401613399565b9290929160243567ffffffffffffffff811161031f578161343691600401613399565b929092916044359067ffffffffffffffff821161031f5761345991600401613399565b9091565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261031f5760043567ffffffffffffffff811161031f57816134a691600401613399565b929092916024359067ffffffffffffffff821161031f5761345991600401613399565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612cf657604052565b67ffffffffffffffff8111612cf65760051b60200190565b92919061352e8161350a565b9361353c60405195866134c9565b602085838152019160051b810192831161031f57905b82821061355e57505050565b8135815260209182019101613552565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156135c65773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b67ffffffffffffffff8111612cf657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613613826135cd565b9161362160405193846134c9565b82948184528183011161031f578281602093846000960137010152565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff0000000000000000000000000000000000000000000000000000000081146135c6577f01ffc9a70000000000000000000000000000000000000000000000000000000081146136c15760005260205260ff6040600020541690565b5050600190565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff811615610699577401000000000000000000000000000000000000000016156135c6576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b90600182811c92168015613780575b602083101461375157565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691613746565b909273ffffffffffffffffffffffffffffffffffffffff169283156106c757846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff81169384156130b05773ffffffffffffffffffffffffffffffffffffffff811680950361394f57826137fe9185613eef565b15613894575b5050836000528060205282604060002055828203613845575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055826000526020526040600020600181540190553861381d565b7401000000000000000000000000000000000000000016158015613909575b6138bd5780613804565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff821614156138b3565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b8181029291811591840414171561399457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613a1d5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611fb957826000528060205273ffffffffffffffffffffffffffffffffffffffff60406000205416613b1957600190836000528060205282604060002055826000520160205260406000206001815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b827f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b8051821015613b5b5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8160005260205273ffffffffffffffffffffffffffffffffffffffff60406000205416908115613bb8575090565b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b9190811015613b5b5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff8116810361031f5790565b9081602091031261031f5751801515810361031f5790565b9060405191826000825492613c4284613737565b8084529360018116908115613cb05750600114613c69575b50613c67925003836134c9565b565b90506000929192526020600020906000915b818310613c94575050906020613c679282010138613c5a565b6020919350806001915483858901015201910190918492613c7b565b60209350613c679592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138613c5a565b5473ffffffffffffffffffffffffffffffffffffffff169081151580613dd1575b613d19575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610c6e57600091613db2575b5015613d855750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613dcb915060203d602011610ea657610e9881836134c9565b38613d7c565b50813b1515613d11565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613ee0573233148015613ee5575b613ee0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613e66575b50613e6357503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa908115610c6e57600091613ec1575b5038613e59565b613eda915060203d602011610ea657610e9881836134c9565b38613eba565b503390565b5060183610613e22565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613f1a575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613f14565b73ffffffffffffffffffffffffffffffffffffffff90613fe1826020949597969716958360405196879586957f150b7a02000000000000000000000000000000000000000000000000000000008752166004860152166024840152876044840152608060648401526084830190613270565b03816000865af1908115610c6e57600091614045575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036118f8575050565b6020813d6020116140b8575b8161405e602093836134c9565b8101031261199b5751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610c6357507fffffffff00000000000000000000000000000000000000000000000000000000613ff7565b3d915061405156fea264697066735822122071ea666057fad52b1f26df82973ca62357ecfce31989b5fd01323f60b2ea751564736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146131c657806306fdde031461316b578063081812fc1461310e578063095ea7b314612e7a5780630e07f854146125c0578063114ba8ee146124d957806323b872dd146124315780632a55205a1461233e5780632b4c9f16146122cf5780632f2ff15d1461214357806340c10f19146120b357806342842e0e14611fe35780634684d7e914611e03578063572b6c0514611db857806361ba27da14611c9c5780636352211e14611c2157806370a0823114611b5757806373c8a958146119a75780638832e6e3146117595780638bb9c5bf146115ea5780638da5cb5b146115795780638dc251e31461144c57806391d14854146113b457806395d89b41146113455780639da5e8321461121b578063a0c76f62146111aa578063a22cb4651461104a578063b0ccc31e14610fd9578063b88d4fde14610eb7578063c3666c3614610c7a578063c87b56dd14610ac7578063d539139314610a6e578063d547741f146108e5578063e1a8bf2c146108a9578063e985e9c5146107f5578063f2fde38b14610701578063f3993d111461037b5763f7ba94bd146101be57600080fd5b3461031f576101cc3661345d565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061020d613ddb565b925416911690810361034e57508181036103245760005b81811061022d57005b610238818387613be5565b3573ffffffffffffffffffffffffffffffffffffffff811680910361031f57610262828587613be5565b35908147106102ed57600080809381935af13d156102e5573d90610285826135cd565b9161029360405193846134c9565b82523d6000602084013e5b156102ac5750600101610224565b8051156102bb57602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b60609061029e565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461031f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576103b26132b3565b6103ba6132d6565b9060443567ffffffffffffffff811161031f576103db903690600401613399565b926103e4613ddb565b907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308273ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff8216036106f1575b505073ffffffffffffffffffffffffffffffffffffffff7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c091169384156106c7576104898382849694613eef565b9373ffffffffffffffffffffffffffffffffffffffff600095159216945b87811061050c578787878181141580610503575b6104c157005b60009081527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040808220805485900390559181522080549091019055005b508215156104bb565b610517818986613be5565b35806000528260205260406000205473ffffffffffffffffffffffffffffffffffffffff811680156106995788036106675784610590575b509081600192600052836020528860406000205588887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4016104a7565b7401000000000000000000000000000000000000000016158015610604575b6105b9578961054f565b8673ffffffffffffffffffffffffffffffffffffffff877fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50806000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c260205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff871614156105af565b50867f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b827fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f86c870670000000000000000000000000000000000000000000000000000000060005260046000fd5b6106fa91613cf0565b858261043b565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576107386132b3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610762613ddb565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361034e575073ffffffffffffffffffffffffffffffffffffffff16918282036107a657005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5761082c6132b3565b73ffffffffffffffffffffffffffffffffffffffff6108496132d6565b91166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020604051620186a08152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760043561091f6132d6565b610927613ddb565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034e57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166109d957005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610bb96000600435610b28817fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613b8a565b5073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541660405180809581947ff724dad700000000000000000000000000000000000000000000000000000000835230600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03915afa908115610c6e57600091610be6575b60405160208082528190610be290820185613270565b0390f35b3d8083833e610bf581836134c9565b810190602081830312610c665780519067ffffffffffffffff8211610c6a570181601f82011215610c6657805192610c2c846135cd565b92610c3a60405194856134c9565b84845260208584010111610c635750610be292610c5d916020808501910161324d565b90610bcc565b80fd5b8280fd5b8380fd5b6040513d6000823e3d90fd5b3461031f57610c88366133ca565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610ccd613ddb565b925416911690810361034e5750808214801590610ead575b6103245760005b828110610cf557005b73ffffffffffffffffffffffffffffffffffffffff610d1d610d1883858a613be5565b613bf5565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa908115610c6e57600091610e7f575b5015610e52575073ffffffffffffffffffffffffffffffffffffffff610dac610d1883858a613be5565b1690610dbc610d18828689613be5565b91610dc882878b613be5565b3592813b1561031f57606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af1918215610c6e57600192610e41575b5001610cec565b6000610e4c916134c9565b88610e3a565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610ea0915060203d8111610ea6575b610e9881836134c9565b810190613c16565b89610d82565b503d610e8e565b5082821415610ce5565b3461031f5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610eee6132b3565b610ef66132d6565b60443560643567ffffffffffffffff811161031f57610f199036906004016132f9565b929093610f24613ddb565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff821603610fc9575b5050610faa848484887fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061378a565b823b610fb257005b610fc795610fc1913691613607565b93613f6f565b005b610fd291613cf0565b8685610f7b565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576110816132b3565b602435908115159182810361031f5761117b575b73ffffffffffffffffffffffffffffffffffffffff806110b3613ddb565b1691169181831461114d5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c38252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507fe4215c6a0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6111a5817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613cf0565b611095565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b3461031f576112293661345d565b61125b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b906139c3565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0926112868161350a565b9461129460405196876134c9565b818652602086019160051b81019036821161031f57915b81831061131857505050906112c1913691613522565b91805191835183036103245760005b8381106112d957005b8061131273ffffffffffffffffffffffffffffffffffffffff6112fe60019487613b47565b511661130a8389613b47565b519085613a85565b016112d0565b823573ffffffffffffffffffffffffffffffffffffffff8116810361031f578152602092830192016112ab565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610be26113a07f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5613c2e565b604051918291602083526020830190613270565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576113eb6132d6565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576114836132b3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806114c2613ddb565b925416911690810361034e57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff81161561154f5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611645613ddb565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156117115760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610a69565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b3461031f5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576117906132b3565b6024359060443567ffffffffffffffff811161031f576117b49036906004016132f9565b916117e17fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b611821848261181b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c095611813613ddb565b973691613607565b94613a85565b803b61182957005b73ffffffffffffffffffffffffffffffffffffffff80602092169361189660405194859384937f150b7a0200000000000000000000000000000000000000000000000000000000855216600484015260006024840152876044840152608060648401526084830190613270565b03816000865af1908115610c6e57600091611928575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036118f857005b7fc215a7a10000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b6020813d60201161199f575b81611941602093836134c9565b8101031261199b5751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610c6357507fffffffff000000000000000000000000000000000000000000000000000000006118ac565b5080fd5b3d9150611934565b3461031f576119b5366133ca565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806119f8613ddb565b925416911690810361034e5750808414801590611b4d575b6103245760005b848110611a2057005b611a2b818388613be5565b3573ffffffffffffffffffffffffffffffffffffffff81169081810361031f576000602091611a5e610d18868b8e613be5565b82611ac8611af4611a70898d8d613be5565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826134c9565b51925af115610c6e576000513d611b445750803b155b611b175750600101611a17565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611b0a565b5082841415611a10565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57611b8e6132b3565b73ffffffffffffffffffffffffffffffffffffffff811615611bf75773ffffffffffffffffffffffffffffffffffffffff166000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526020604060002054604051908152f35b7faefbce4e0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020611c7e6004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613b8a565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611d0d613ddb565b925416911690810361034e57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a08111611d8b57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020611df9611df46132b3565b61356e565b6040519015158152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57611e3a6132b3565b60243567ffffffffffffffff811161031f5773ffffffffffffffffffffffffffffffffffffffff611e72611ec9923690600401613399565b9290611ea07fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b7fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0933691613522565b9216908115611fb95782519260005b848110611f19575050506000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c16020526040600020908154019055600080f35b611f238183613b47565b51806000528360205273ffffffffffffffffffffffffffffffffffffffff60406000205416611f8c57908160019260005284602052856040600020558560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a401611ed8565b7f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7f7851b9cd0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461031f57611ff136613327565b611ff9613ddb565b917f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308373ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff8216036120a3575b505061207f828286867fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061378a565b803b61208757005b610fc7936040519361209a6020866134c9565b60008552613f6f565b6120ac91613cf0565b8483612050565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610fc76120ed6132b3565b6121197fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22611255613ddb565b602435907fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0613a85565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760043561217d6132d6565b612185613ddb565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361034e57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054161561223857005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610a69565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c9080158015612429575b156123f3575050610be260005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b610be291620186a08210156124165761241090620186a092613981565b046123c3565b620186a06124249204613981565b6123c3565b5081156123b6565b3461031f57610fc761244236613327565b9161244b613ddb565b7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308173ffffffffffffffffffffffffffffffffffffffff841673ffffffffffffffffffffffffffffffffffffffff8216036124c9575b50507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c061378a565b6124d291613cf0565b85816124a1565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576125106132b3565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061254f613ddb565b925416911690810361034e575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b3461031f5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f5760043567ffffffffffffffff811161031f5761260f9036906004016132f9565b60243567ffffffffffffffff811161031f5761262f9036906004016132f9565b6044939193359173ffffffffffffffffffffffffffffffffffffffff8316830361031f576064359373ffffffffffffffffffffffffffffffffffffffff8516850361031f577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc61269d613ddb565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612b39575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081612e25575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f8ed2355fc3f859d445b81332ba1875c675be71b9fe1bab0a25be6436696b0ec780548216831790557f98ea984a1dd4b0fbb2764a2a70a93d7e6137ea3c70db196cc96460f50c0d1a1f80548216831790557f70a1033a668c0b93d699f00f1cf02b517801b7285ead3ea5fa8d9b43f89ed57180548216831790557f4f521d2bc326c534847f496e961505200b8e61c57a75e48fd6b97dc560e2c5a480548216831790557f0845b122e17f0ee9a0d1d2feeec009013976e8c85c80079e88858099492b187280548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612b39575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612cf65781906129258454613737565b601f8111612dd2575b50600090601f8311600114612d3057600092612d25575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612cf6576129b07f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a554613737565b601f8111612c72575b506000601f8211600114612b765781929394600092612b6b575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612b39575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b0135905084806129d3565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612c5a575083600195969710612c22575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612a25565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612bf5565b90926020600181928686013581550194019101612be1565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612cec575b601f0160051c01905b818110612ce057506129b9565b60008155600101612cd3565b9091508190612cca565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b013590508780612945565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612dba5750908460019594939210612d82575b505050811b019055612977565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612d75565b91936020600181928787013581550195019201612d5f565b909150836000526020600020601f840160051c81019160208510612e1b575b90601f859493920160051c01905b818110612e0c575061292e565b60008155849350600101612dff565b9091508190612df1565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3868061270a565b3461031f5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57612eb16132b3565b6024359073ffffffffffffffffffffffffffffffffffffffff81169081159081156130de575b507fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c0612f01613ddb565b9184600052816020526040600020549073ffffffffffffffffffffffffffffffffffffffff82169384156130b05784861461308257612f41818686613eef565b15613036575015612fa5577401000000000000000000000000000000000000000016612f91575b505b7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b836000526020528060406000205583612f68565b90740100000000000000000000000000000000000000008217809203613022575b5050826000527fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c26020526040600020827fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055612f6a565b846000526020526040600020558380612fc6565b8473ffffffffffffffffffffffffffffffffffffffff88927fc7563a18000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b847fb7fdc0100000000000000000000000000000000000000000000000000000000060005260045260246000fd5b867fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613108907f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613cf0565b83612ed7565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576020611c7e6004357fddf3ee18ae6d688373c219468f8be446e7ae82215f4779d821c7ea5e8c13c0c06136c8565b3461031f5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f57610be26113a07f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a4613c2e565b3461031f5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261031f576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361031f57611df96020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d61363e565b60005b8381106132605750506000910152565b8181015183820152602001613250565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f6020936132ac8151809281875287808801910161324d565b0116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361031f57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361031f57565b9181601f8401121561031f5782359167ffffffffffffffff831161031f576020838186019501011161031f57565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261031f5760043573ffffffffffffffffffffffffffffffffffffffff8116810361031f579060243573ffffffffffffffffffffffffffffffffffffffff8116810361031f579060443590565b9181601f8401121561031f5782359167ffffffffffffffff831161031f576020808501948460051b01011161031f57565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261031f5760043567ffffffffffffffff811161031f578161341391600401613399565b9290929160243567ffffffffffffffff811161031f578161343691600401613399565b929092916044359067ffffffffffffffff821161031f5761345991600401613399565b9091565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261031f5760043567ffffffffffffffff811161031f57816134a691600401613399565b929092916024359067ffffffffffffffff821161031f5761345991600401613399565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612cf657604052565b67ffffffffffffffff8111612cf65760051b60200190565b92919061352e8161350a565b9361353c60405195866134c9565b602085838152019160051b810192831161031f57905b82821061355e57505050565b8135815260209182019101613552565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156135c65773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b67ffffffffffffffff8111612cf657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613613826135cd565b9161362160405193846134c9565b82948184528183011161031f578281602093846000960137010152565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff0000000000000000000000000000000000000000000000000000000081146135c6577f01ffc9a70000000000000000000000000000000000000000000000000000000081146136c15760005260205260ff6040600020541690565b5050600190565b816000528060205260406000205473ffffffffffffffffffffffffffffffffffffffff811615610699577401000000000000000000000000000000000000000016156135c6576002916000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020541690565b90600182811c92168015613780575b602083101461375157565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691613746565b909273ffffffffffffffffffffffffffffffffffffffff169283156106c757846000528160205260406000205473ffffffffffffffffffffffffffffffffffffffff81169384156130b05773ffffffffffffffffffffffffffffffffffffffff811680950361394f57826137fe9185613eef565b15613894575b5050836000528060205282604060002055828203613845575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b600101816000528060205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8154019055826000526020526040600020600181540190553861381d565b7401000000000000000000000000000000000000000016158015613909575b6138bd5780613804565b8273ffffffffffffffffffffffffffffffffffffffff86927fa4a3018b000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b50846000526002820160205273ffffffffffffffffffffffffffffffffffffffff6040600020541673ffffffffffffffffffffffffffffffffffffffff821614156138b3565b86857f14dbb5360000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b8181029291811591840414171561399457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff6040600020541615613a1d5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611fb957826000528060205273ffffffffffffffffffffffffffffffffffffffff60406000205416613b1957600190836000528060205282604060002055826000520160205260406000206001815401905560007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4565b827f753eceac0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b8051821015613b5b5760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8160005260205273ffffffffffffffffffffffffffffffffffffffff60406000205416908115613bb8575090565b7fdd5604750000000000000000000000000000000000000000000000000000000060005260045260246000fd5b9190811015613b5b5760051b0190565b3573ffffffffffffffffffffffffffffffffffffffff8116810361031f5790565b9081602091031261031f5751801515810361031f5790565b9060405191826000825492613c4284613737565b8084529360018116908115613cb05750600114613c69575b50613c67925003836134c9565b565b90506000929192526020600020906000915b818310613c94575050906020613c679282010138613c5a565b6020919350806001915483858901015201910190918492613c7b565b60209350613c679592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138613c5a565b5473ffffffffffffffffffffffffffffffffffffffff169081151580613dd1575b613d19575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa908115610c6e57600091613db2575b5015613d855750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613dcb915060203d602011610ea657610e9881836134c9565b38613d7c565b50813b1515613d11565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613ee0573233148015613ee5575b613ee0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613e66575b50613e6357503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa908115610c6e57600091613ec1575b5038613e59565b613eda915060203d602011610ea657610e9881836134c9565b38613eba565b503390565b5060183610613e22565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613f1a575b50505090565b600392935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613f14565b73ffffffffffffffffffffffffffffffffffffffff90613fe1826020949597969716958360405196879586957f150b7a02000000000000000000000000000000000000000000000000000000008752166004860152166024840152876044840152608060648401526084830190613270565b03816000865af1908115610c6e57600091614045575b507fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036118f8575050565b6020813d6020116140b8575b8161405e602093836134c9565b8101031261199b5751907fffffffff0000000000000000000000000000000000000000000000000000000082168203610c6357507fffffffff00000000000000000000000000000000000000000000000000000000613ff7565b3d915061405156fea264697066735822122071ea666057fad52b1f26df82973ca62357ecfce31989b5fd01323f60b2ea751564736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
