{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20FacetMock",
  "sourceName": "contracts/mocks/token/ERC20/facets/ERC20FacetMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "increment",
          "type": "uint256"
        }
      ],
      "name": "ERC20AllowanceOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20ApprovalToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20BatchMintValuesOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "decrement",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "supply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20TotalSupplyOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotProxyAdmin",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "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": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "initERC20Storage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "initialHolders",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "initialAllocations",
          "type": "uint256[]"
        }
      ],
      "name": "initERC20StorageWithAllocations",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "supply",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034606d57601f6115bc38819003918201601f19168301916001600160401b03831184841017607257808492602094604052833981010312606d57516001600160a01b0381168103606d576080526040516115339081610089823960805181818161109a01526111e10152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8063095ea7b314610ac157806318160ddd14610a6657806323b872dd146109a957806331e66e1e1461092657806339509351146106f657806370a0823114610671578063a457c2d714610604578063a9059cbb1461058c578063c8342b1d146102b4578063dd62ed3e146102055763fb33f6081461009557600080fd5b346102005760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610373ffffffffffffffffffffffffffffffffffffffff80610103611083565b92541691169081036101d3577fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f9d075186000000000000000000000000000000000000000000000000000000006000527fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a66805490911690911790555b005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005761023c610bed565b73ffffffffffffffffffffffffffffffffffffffff610259610c10565b91166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005760043567ffffffffffffffff811161020057610303903690600401610c33565b60243567ffffffffffffffff811161020057610323903690600401610c33565b917fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610373ffffffffffffffffffffffffffffffffffffffff80610363611083565b92541691169081036101d3575061037981610cd4565b936103876040519586610c64565b818552602085019160051b81019036821161020057915b81831061055f575050506103b182610cd4565b916103bf6040519384610c64565b808352602083019060051b82019136831161020057905b82821061054f575050507f53d309e32e4ca7be7e99298a42b755b0cd82d1ad9411e9a18f57394d122749905491600183101561051c5760017f53d309e32e4ca7be7e99298a42b755b0cd82d1ad9411e9a18f57394d122749908190557fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090811683179091557f9d075186000000000000000000000000000000000000000000000000000000006000527fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a66805490911690911790556101d192507f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611353565b827fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b81358152602091820191016103d6565b823573ffffffffffffffffffffffffffffffffffffffff811681036102005781526020928301920161039e565b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576105f96105c6610bed565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6105f3611083565b90610eca565b602060405160018152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576105f961063e610bed565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee61066b611083565b90610cec565b346102005760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576106a8610bed565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91166000526020526020604060002054604051908152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005761072d610bed565b602435610738611083565b9073ffffffffffffffffffffffffffffffffffffffff83169283156108e25773ffffffffffffffffffffffffffffffffffffffff83166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205260406000208460005260205260406000205491806107fd575b84837f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602073ffffffffffffffffffffffffffffffffffffffff886040519485521692a3602060405160018152f35b808301928084111561088757505050602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928185166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef835260406000208660005283528060406000205592506107ae565b6040517f93bc2ff100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015293909316602484015260448301526064820152608490fd5b73ffffffffffffffffffffffffffffffffffffffff837ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346102005760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020057604061095f6111ca565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346102005760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576105f96109e3610bed565b6109eb610c10565b604435917f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee610a18611083565b8473ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603610a54575b5050610eca565b610a5f918484610cec565b8584610a4d565b346102005760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005760207f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf054604051908152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020057610af8610bed565b60243573ffffffffffffffffffffffffffffffffffffffff610b18611083565b9216918215610ba957602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928181166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef83526040600020866000528352846040600020556040519485521692a3602060405160018152f35b73ffffffffffffffffffffffffffffffffffffffff907ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361020057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361020057565b9181601f840112156102005782359167ffffffffffffffff8311610200576020808501948460051b01011161020057565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ca557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111610ca55760051b60200190565b92909173ffffffffffffffffffffffffffffffffffffffff8116938415610e86576001019073ffffffffffffffffffffffffffffffffffffffff841660005281602052604060002085600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84141580610e7d575b610db9575b50505090602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926040519485521692a3565b8084039380851015610e225750505073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592602092828616600052835260406000208660005283528060406000205592610d71565b6040517f137ad6ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015293909316602484015260448301526064820152608490fd5b50801515610d6c565b73ffffffffffffffffffffffffffffffffffffffff847ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b929173ffffffffffffffffffffffffffffffffffffffff169283156110275782610f34575b50602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff8216600052806020526040600020548381039080821015610fdb57508260209273ffffffffffffffffffffffffffffffffffffffff9287847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef971603610fb4575b5050925050610eef565b83831660005281855260406000205586600052835260406000208581540190553880610faa565b849073ffffffffffffffffffffffffffffffffffffffff857fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff827f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b90816020910312610200575180151581036102005790565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156111bb5732331480156111c0575b6111bb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561110e575b5061110b57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156111af57600091611180575b5038611101565b6111a2915060203d6020116111a8575b61119a8183610c64565b81019061106b565b38611179565b503d611190565b6040513d6000823e3d90fd5b503390565b50601836106110ca565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156112fe573233148015611306575b6112fe5780331490811561125d575b5061122c576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116102005760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156111af576000916112df575b5038611220565b6112f8915060203d6020116111a85761119a8183610c64565b386112d8565b506000903690565b5060183610611211565b80518210156113245760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9091825190805182036114d35781156114cd5760009360005b8381106113c7575050505081611380575050565b600201805491808301928084111561139757505055565b7f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b73ffffffffffffffffffffffffffffffffffffffff6113e68284611310565b511680156114a3576113f88285611310565b5180611436575b9060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060019594604051908152a30161136c565b969190878301928311156114795773ffffffffffffffffffffffffffffffffffffffff8116600090815260208890526040902080548901905591969091906113ff565b7f5542ae7c0000000000000000000000000000000000000000000000000000000060005260046000fd5b7f92fd9c8f0000000000000000000000000000000000000000000000000000000060005260046000fd5b50505050565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fdfea2646970667358221220310964f3b4861fe367398b9b3bc2dceaa64453c46034719cc9ae8c67327c7e4e64736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8063095ea7b314610ac157806318160ddd14610a6657806323b872dd146109a957806331e66e1e1461092657806339509351146106f657806370a0823114610671578063a457c2d714610604578063a9059cbb1461058c578063c8342b1d146102b4578063dd62ed3e146102055763fb33f6081461009557600080fd5b346102005760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200577fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610373ffffffffffffffffffffffffffffffffffffffff80610103611083565b92541691169081036101d3577fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f9d075186000000000000000000000000000000000000000000000000000000006000527fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a66805490911690911790555b005b7f673a31a10000000000000000000000000000000000000000000000000000000060005260045260246000fd5b600080fd5b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005761023c610bed565b73ffffffffffffffffffffffffffffffffffffffff610259610c10565b91166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005760043567ffffffffffffffff811161020057610303903690600401610c33565b60243567ffffffffffffffff811161020057610323903690600401610c33565b917fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610373ffffffffffffffffffffffffffffffffffffffff80610363611083565b92541691169081036101d3575061037981610cd4565b936103876040519586610c64565b818552602085019160051b81019036821161020057915b81831061055f575050506103b182610cd4565b916103bf6040519384610c64565b808352602083019060051b82019136831161020057905b82821061054f575050507f53d309e32e4ca7be7e99298a42b755b0cd82d1ad9411e9a18f57394d122749905491600183101561051c5760017f53d309e32e4ca7be7e99298a42b755b0cd82d1ad9411e9a18f57394d122749908190557fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090811683179091557f9d075186000000000000000000000000000000000000000000000000000000006000527fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a66805490911690911790556101d192507f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611353565b827fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b81358152602091820191016103d6565b823573ffffffffffffffffffffffffffffffffffffffff811681036102005781526020928301920161039e565b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576105f96105c6610bed565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6105f3611083565b90610eca565b602060405160018152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576105f961063e610bed565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee61066b611083565b90610cec565b346102005760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576106a8610bed565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91166000526020526020604060002054604051908152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005761072d610bed565b602435610738611083565b9073ffffffffffffffffffffffffffffffffffffffff83169283156108e25773ffffffffffffffffffffffffffffffffffffffff83166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205260406000208460005260205260406000205491806107fd575b84837f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602073ffffffffffffffffffffffffffffffffffffffff886040519485521692a3602060405160018152f35b808301928084111561088757505050602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928185166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef835260406000208660005283528060406000205592506107ae565b6040517f93bc2ff100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015293909316602484015260448301526064820152608490fd5b73ffffffffffffffffffffffffffffffffffffffff837ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346102005760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020057604061095f6111ca565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346102005760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610200576105f96109e3610bed565b6109eb610c10565b604435917f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee610a18611083565b8473ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603610a54575b5050610eca565b610a5f918484610cec565b8584610a4d565b346102005760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102005760207f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf054604051908152f35b346102005760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261020057610af8610bed565b60243573ffffffffffffffffffffffffffffffffffffffff610b18611083565b9216918215610ba957602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928181166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef83526040600020866000528352846040600020556040519485521692a3602060405160018152f35b73ffffffffffffffffffffffffffffffffffffffff907ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361020057565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361020057565b9181601f840112156102005782359167ffffffffffffffff8311610200576020808501948460051b01011161020057565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ca557604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b67ffffffffffffffff8111610ca55760051b60200190565b92909173ffffffffffffffffffffffffffffffffffffffff8116938415610e86576001019073ffffffffffffffffffffffffffffffffffffffff841660005281602052604060002085600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84141580610e7d575b610db9575b50505090602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926040519485521692a3565b8084039380851015610e225750505073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592602092828616600052835260406000208660005283528060406000205592610d71565b6040517f137ad6ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015293909316602484015260448301526064820152608490fd5b50801515610d6c565b73ffffffffffffffffffffffffffffffffffffffff847ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b929173ffffffffffffffffffffffffffffffffffffffff169283156110275782610f34575b50602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff8216600052806020526040600020548381039080821015610fdb57508260209273ffffffffffffffffffffffffffffffffffffffff9287847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef971603610fb4575b5050925050610eef565b83831660005281855260406000205586600052835260406000208581540190553880610faa565b849073ffffffffffffffffffffffffffffffffffffffff857fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff827f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b90816020910312610200575180151581036102005790565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156111bb5732331480156111c0575b6111bb577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561110e575b5061110b57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156111af57600091611180575b5038611101565b6111a2915060203d6020116111a8575b61119a8183610c64565b81019061106b565b38611179565b503d611190565b6040513d6000823e3d90fd5b503390565b50601836106110ca565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680156112fe573233148015611306575b6112fe5780331490811561125d575b5061122c576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116102005760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156111af576000916112df575b5038611220565b6112f8915060203d6020116111a85761119a8183610c64565b386112d8565b506000903690565b5060183610611211565b80518210156113245760209160051b010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9091825190805182036114d35781156114cd5760009360005b8381106113c7575050505081611380575050565b600201805491808301928084111561139757505055565b7f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b73ffffffffffffffffffffffffffffffffffffffff6113e68284611310565b511680156114a3576113f88285611310565b5180611436575b9060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060019594604051908152a30161136c565b969190878301928311156114795773ffffffffffffffffffffffffffffffffffffffff8116600090815260208890526040902080548901905591969091906113ff565b7f5542ae7c0000000000000000000000000000000000000000000000000000000060005260046000fd5b7f92fd9c8f0000000000000000000000000000000000000000000000000000000060005260046000fd5b50505050565b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fdfea2646970667358221220310964f3b4861fe367398b9b3bc2dceaa64453c46034719cc9ae8c67327c7e4e64736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
