{
  "_format": "hh-sol-artifact-1",
  "contractName": "RandomGenerator",
  "sourceName": "contracts/V3/RandomGenerator.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "random",
          "type": "uint256"
        }
      ],
      "name": "Random",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "blockHashTask",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "clearRandom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "cname",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "handler",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "getRandomState",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "handler",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "clusterArea",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "stateCounter",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "clusterId",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "ruleSlotIndexInput",
              "type": "uint16"
            },
            {
              "internalType": "uint16",
              "name": "ruleSlotIndexOutput",
              "type": "uint16"
            },
            {
              "internalType": "uint32",
              "name": "taskId",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "blockTimestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "blockNumber",
              "type": "uint32"
            },
            {
              "internalType": "uint8",
              "name": "stdTrialMaxCount",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "trialCount",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "futureBlockNumber",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "futureBlockHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "futureBlockHashInt",
              "type": "uint256"
            }
          ],
          "internalType": "struct RandomGenerator.RandomState",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "getTaskRandom",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "makeRandom",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "makeRandomBlock",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "makeRandomHash",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "clusterArea",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "address",
          "name": "stateCounter",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "taskId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        }
      ],
      "name": "makeRandomPast",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "taskRandom",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "clusterId",
          "type": "uint32"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexInput",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "ruleSlotIndexOutput",
          "type": "uint16"
        },
        {
          "internalType": "uint8",
          "name": "trialMaxCount",
          "type": "uint8"
        }
      ],
      "name": "updateRandomArgs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610e23806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c8063063738cb146100a957806334c76b25146100d1578063495fb7ec14610102578063524562271461011757806354fd4d50146101385780636209182e1461013f5780638a5ab27e14610152578063a3ee869214610165578063a8b6733214610185578063c0ca78c6146101a5578063edd2b62e146101c5578063f41fdf58146101e5575b600080fd5b6100bc6100b736600461090d565b6101f8565b60405190151581526020015b60405180910390f35b604080518082018252600f81526e2930b73237b6a3b2b732b930ba37b960891b602082015290516100c891906109e0565b61011561011036600461090d565b610378565b005b61012a610125366004610a10565b6103a3565b6040519081526020016100c8565b600161012a565b61011561014d366004610b36565b610494565b61012a610160366004610a10565b6104c9565b61012a610173366004610b92565b60016020526000908152604090205481565b61012a610193366004610b92565b60026020526000908152604090205481565b6101b86101b3366004610bab565b610513565b6040516100c89190610bec565b61012a6101d3366004610b92565b60009081526002602052604090205490565b61012a6101f3366004610a10565b610630565b60008061020b338a8a8a8a8a8a8a6106db565b600081815260016020908152604082205492935061022b90839083610754565b90506000610245836008610240846020610d1a565b610754565b90506000610255338d8d8d610773565b60008181526020819052604090205490915060ff1663ffffffff84166102d45761028d85610284436002610d1a565b602060006107cc565b94506102b48561029e856001610d32565b60ff1660086102af60006020610d1a565b6107cc565b6000968752600160208190526040909720555093945061036d9350505050565b63ffffffff84164080801580156102f057508563ffffffff1643115b156103605760ff8316610304866001610d32565b60ff16111561031e5760009850505050505050505061036d565b61032d87610284436002610d1a565b965061033e8761029e876001610d32565b6000988952600160208190526040909920555095965061036d95505050505050565b6001985050505050505050505b979650505050505050565b600061038a33898989898989896106db565b6000908152600160205260408120555050505050505050565b6000806103b6338a8a8a8a8a8a8a6106db565b60008181526001602090815260408220549293506103d690839083610754565b905063ffffffff8116804090819060009043111561041357816103fb57506001610417565b811561040e5761040b8f846107f1565b90505b610417565b5060025b600381106104315760008681526002602052604090208190555b808d63ffffffff168f6001600160a01b03167f52e3fe42d8346380423537ead5419d357dc7032ccf34168bf0095498f407b4ae8f8f8f8f8f60405161047a959493929190610d57565b60405180910390a49e9d5050505050505050505050505050565b60006104a233868686610773565b6000908152602081905260409020805460ff191660ff939093169290921790915550505050565b6000806104dc338a8a8a8a8a8a8a6106db565b60008181526001602090815260408220549293506104fc90839083610754565b63ffffffff16409c9b505050505050505050505050565b61051b61084f565b600061052d8a8a8a8a8a8a8a8a6106db565b905061053761084f565b6001600160a01b03808c1682528a8116602080840191909152858216606084015263ffffffff808c16608085015261ffff808c1660a08601528a1660c085015291881660408085019190915287831660e08501524383166101208501524290921661010084015260008481526001825291822054916105b7918391610754565b63ffffffff166101808301526105d581600861024060006020610d1a565b60ff1661016083015261018082015163ffffffff16406101a083018190526101c083015260006106078d8c8c8c610773565b60009081526020819052604090205460ff1661014084015250909b9a5050505050505050505050565b600080610643338a8a8a8a8a8a8a6106db565b90506000610652600143610d91565b40905060006106618c836107f1565b9050806002600085815260200190815260200160002081905550808a63ffffffff168c6001600160a01b03167f52e3fe42d8346380423537ead5419d357dc7032ccf34168bf0095498f407b4ae8c8c8c8c8c6040516106c4959493929190610d57565b60405180910390a49b9a5050505050505050505050565b604080516001600160a01b03998a16602080830191909152988a168183015263ffffffff978816606082015261ffff96871660808201529490951660a085015291871660c084015290931660e0820152919093166101008083019190915283518083039091018152610120909101909252815191012090565b91821c91600080610768600180861b610d91565b909416949350505050565b604080516001600160a01b038616602082015263ffffffff85169181019190915261ffff80841660608301528216608082015260009060a001604051602081830303815290604052805190602001209050949350505050565b600083821b81836107e0600180881b610d91565b901b19969096161795945050505050565b6000805a90506000813a4286418960405160200161081496959493929190610da8565b60408051808303601f190181529181528151602092830120326000908152600393849052919091208054909202019081905595945050505050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081019190915290565b80356001600160a01b03811681146108e257600080fd5b919050565b803563ffffffff811681146108e257600080fd5b803561ffff811681146108e257600080fd5b600080600080600080600060e0888a03121561092857600080fd5b610931886108cb565b965061093f602089016108e7565b955061094d604089016108fb565b945061095b606089016108fb565b9350610969608089016108cb565b925061097760a089016108e7565b915061098560c089016108cb565b905092959891949750929550565b6000815180845260005b818110156109b95760208185018101518683018201520161099d565b818111156109cb576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006109f36020830184610993565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600080610100898b031215610a2d57600080fd5b883567ffffffffffffffff80821115610a4557600080fd5b818b0191508b601f830112610a5957600080fd5b813581811115610a6b57610a6b6109fa565b604051601f8201601f19908116603f01168101908382118183101715610a9357610a936109fa565b816040528281528e6020848701011115610aac57600080fd5b82602086016020830137600060208483010152809c505050505050610ad360208a016108cb565b9650610ae160408a016108e7565b9550610aef60608a016108fb565b9450610afd60808a016108fb565b9350610b0b60a08a016108cb565b9250610b1960c08a016108e7565b9150610b2760e08a016108cb565b90509295985092959890939650565b60008060008060808587031215610b4c57600080fd5b610b55856108e7565b9350610b63602086016108fb565b9250610b71604086016108fb565b9150606085013560ff81168114610b8757600080fd5b939692955090935050565b600060208284031215610ba457600080fd5b5035919050565b600080600080600080600080610100898b031215610bc857600080fd5b610bd1896108cb565b9750610ad360208a016108cb565b6001600160a01b03169052565b60006101e082019050610c00828451610bdf565b6020830151610c126020840182610bdf565b506040830151610c256040840182610bdf565b506060830151610c386060840182610bdf565b506080830151610c50608084018263ffffffff169052565b5060a0830151610c6660a084018261ffff169052565b5060c0830151610c7c60c084018261ffff169052565b5060e0830151610c9460e084018263ffffffff169052565b506101008381015163ffffffff90811691840191909152610120808501518216908401526101408085015160ff90811691850191909152610160808601519091169084015261018080850151909116908301526101a080840151908301526101c092830151929091019190915290565b634e487b7160e01b600052601160045260246000fd5b60008219821115610d2d57610d2d610d04565b500190565b600060ff821660ff84168060ff03821115610d4f57610d4f610d04565b019392505050565b61ffff95861681529390941660208401526001600160a01b03918216604084015263ffffffff166060830152909116608082015260a00190565b600082821015610da357610da3610d04565b500390565b86815285602082015284604082015283606082015260018060a01b038316608082015260c060a08201526000610de160c0830184610993565b9897505050505050505056fea2646970667358221220618cc342933650d4eb32a14b2703e5bd23654be7d6cb8d38ef0111695f20e45e64736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a45760003560e01c8063063738cb146100a957806334c76b25146100d1578063495fb7ec14610102578063524562271461011757806354fd4d50146101385780636209182e1461013f5780638a5ab27e14610152578063a3ee869214610165578063a8b6733214610185578063c0ca78c6146101a5578063edd2b62e146101c5578063f41fdf58146101e5575b600080fd5b6100bc6100b736600461090d565b6101f8565b60405190151581526020015b60405180910390f35b604080518082018252600f81526e2930b73237b6a3b2b732b930ba37b960891b602082015290516100c891906109e0565b61011561011036600461090d565b610378565b005b61012a610125366004610a10565b6103a3565b6040519081526020016100c8565b600161012a565b61011561014d366004610b36565b610494565b61012a610160366004610a10565b6104c9565b61012a610173366004610b92565b60016020526000908152604090205481565b61012a610193366004610b92565b60026020526000908152604090205481565b6101b86101b3366004610bab565b610513565b6040516100c89190610bec565b61012a6101d3366004610b92565b60009081526002602052604090205490565b61012a6101f3366004610a10565b610630565b60008061020b338a8a8a8a8a8a8a6106db565b600081815260016020908152604082205492935061022b90839083610754565b90506000610245836008610240846020610d1a565b610754565b90506000610255338d8d8d610773565b60008181526020819052604090205490915060ff1663ffffffff84166102d45761028d85610284436002610d1a565b602060006107cc565b94506102b48561029e856001610d32565b60ff1660086102af60006020610d1a565b6107cc565b6000968752600160208190526040909720555093945061036d9350505050565b63ffffffff84164080801580156102f057508563ffffffff1643115b156103605760ff8316610304866001610d32565b60ff16111561031e5760009850505050505050505061036d565b61032d87610284436002610d1a565b965061033e8761029e876001610d32565b6000988952600160208190526040909920555095965061036d95505050505050565b6001985050505050505050505b979650505050505050565b600061038a33898989898989896106db565b6000908152600160205260408120555050505050505050565b6000806103b6338a8a8a8a8a8a8a6106db565b60008181526001602090815260408220549293506103d690839083610754565b905063ffffffff8116804090819060009043111561041357816103fb57506001610417565b811561040e5761040b8f846107f1565b90505b610417565b5060025b600381106104315760008681526002602052604090208190555b808d63ffffffff168f6001600160a01b03167f52e3fe42d8346380423537ead5419d357dc7032ccf34168bf0095498f407b4ae8f8f8f8f8f60405161047a959493929190610d57565b60405180910390a49e9d5050505050505050505050505050565b60006104a233868686610773565b6000908152602081905260409020805460ff191660ff939093169290921790915550505050565b6000806104dc338a8a8a8a8a8a8a6106db565b60008181526001602090815260408220549293506104fc90839083610754565b63ffffffff16409c9b505050505050505050505050565b61051b61084f565b600061052d8a8a8a8a8a8a8a8a6106db565b905061053761084f565b6001600160a01b03808c1682528a8116602080840191909152858216606084015263ffffffff808c16608085015261ffff808c1660a08601528a1660c085015291881660408085019190915287831660e08501524383166101208501524290921661010084015260008481526001825291822054916105b7918391610754565b63ffffffff166101808301526105d581600861024060006020610d1a565b60ff1661016083015261018082015163ffffffff16406101a083018190526101c083015260006106078d8c8c8c610773565b60009081526020819052604090205460ff1661014084015250909b9a5050505050505050505050565b600080610643338a8a8a8a8a8a8a6106db565b90506000610652600143610d91565b40905060006106618c836107f1565b9050806002600085815260200190815260200160002081905550808a63ffffffff168c6001600160a01b03167f52e3fe42d8346380423537ead5419d357dc7032ccf34168bf0095498f407b4ae8c8c8c8c8c6040516106c4959493929190610d57565b60405180910390a49b9a5050505050505050505050565b604080516001600160a01b03998a16602080830191909152988a168183015263ffffffff978816606082015261ffff96871660808201529490951660a085015291871660c084015290931660e0820152919093166101008083019190915283518083039091018152610120909101909252815191012090565b91821c91600080610768600180861b610d91565b909416949350505050565b604080516001600160a01b038616602082015263ffffffff85169181019190915261ffff80841660608301528216608082015260009060a001604051602081830303815290604052805190602001209050949350505050565b600083821b81836107e0600180881b610d91565b901b19969096161795945050505050565b6000805a90506000813a4286418960405160200161081496959493929190610da8565b60408051808303601f190181529181528151602092830120326000908152600393849052919091208054909202019081905595945050505050565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081019190915290565b80356001600160a01b03811681146108e257600080fd5b919050565b803563ffffffff811681146108e257600080fd5b803561ffff811681146108e257600080fd5b600080600080600080600060e0888a03121561092857600080fd5b610931886108cb565b965061093f602089016108e7565b955061094d604089016108fb565b945061095b606089016108fb565b9350610969608089016108cb565b925061097760a089016108e7565b915061098560c089016108cb565b905092959891949750929550565b6000815180845260005b818110156109b95760208185018101518683018201520161099d565b818111156109cb576000602083870101525b50601f01601f19169290920160200192915050565b6020815260006109f36020830184610993565b9392505050565b634e487b7160e01b600052604160045260246000fd5b600080600080600080600080610100898b031215610a2d57600080fd5b883567ffffffffffffffff80821115610a4557600080fd5b818b0191508b601f830112610a5957600080fd5b813581811115610a6b57610a6b6109fa565b604051601f8201601f19908116603f01168101908382118183101715610a9357610a936109fa565b816040528281528e6020848701011115610aac57600080fd5b82602086016020830137600060208483010152809c505050505050610ad360208a016108cb565b9650610ae160408a016108e7565b9550610aef60608a016108fb565b9450610afd60808a016108fb565b9350610b0b60a08a016108cb565b9250610b1960c08a016108e7565b9150610b2760e08a016108cb565b90509295985092959890939650565b60008060008060808587031215610b4c57600080fd5b610b55856108e7565b9350610b63602086016108fb565b9250610b71604086016108fb565b9150606085013560ff81168114610b8757600080fd5b939692955090935050565b600060208284031215610ba457600080fd5b5035919050565b600080600080600080600080610100898b031215610bc857600080fd5b610bd1896108cb565b9750610ad360208a016108cb565b6001600160a01b03169052565b60006101e082019050610c00828451610bdf565b6020830151610c126020840182610bdf565b506040830151610c256040840182610bdf565b506060830151610c386060840182610bdf565b506080830151610c50608084018263ffffffff169052565b5060a0830151610c6660a084018261ffff169052565b5060c0830151610c7c60c084018261ffff169052565b5060e0830151610c9460e084018263ffffffff169052565b506101008381015163ffffffff90811691840191909152610120808501518216908401526101408085015160ff90811691850191909152610160808601519091169084015261018080850151909116908301526101a080840151908301526101c092830151929091019190915290565b634e487b7160e01b600052601160045260246000fd5b60008219821115610d2d57610d2d610d04565b500190565b600060ff821660ff84168060ff03821115610d4f57610d4f610d04565b019392505050565b61ffff95861681529390941660208401526001600160a01b03918216604084015263ffffffff166060830152909116608082015260a00190565b600082821015610da357610da3610d04565b500390565b86815285602082015284604082015283606082015260018060a01b038316608082015260c060a08201526000610de160c0830184610993565b9897505050505050505056fea2646970667358221220618cc342933650d4eb32a14b2703e5bd23654be7d6cb8d38ef0111695f20e45e64736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
