{
  "contractName": "ShortNameClaims",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "priceOracle",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registrar",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "pendingClaims",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "unresolvedClaims",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "phase",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "REGISTRATION_PERIOD",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "claims",
      "outputs": [
        {
          "name": "labelHash",
          "type": "bytes32"
        },
        {
          "name": "claimant",
          "type": "address"
        },
        {
          "name": "paid",
          "type": "uint256"
        },
        {
          "name": "status",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_priceOracle",
          "type": "address"
        },
        {
          "name": "_registrar",
          "type": "address"
        },
        {
          "name": "_ratifier",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "claimed",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "dnsname",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "paid",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "claimant",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "email",
          "type": "string"
        }
      ],
      "name": "ClaimSubmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "status",
          "type": "uint8"
        }
      ],
      "name": "ClaimStatusChanged",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "addOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "removeOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "ratifier",
          "type": "address"
        }
      ],
      "name": "addRatifier",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "ratifier",
          "type": "address"
        }
      ],
      "name": "removeRatifier",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "claimed",
          "type": "string"
        },
        {
          "name": "dnsname",
          "type": "bytes"
        },
        {
          "name": "claimant",
          "type": "address"
        },
        {
          "name": "email",
          "type": "string"
        }
      ],
      "name": "computeClaimId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "claimed",
          "type": "string"
        }
      ],
      "name": "getClaimCost",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "name",
          "type": "bytes"
        },
        {
          "name": "claimant",
          "type": "address"
        },
        {
          "name": "email",
          "type": "string"
        }
      ],
      "name": "submitExactClaim",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "name",
          "type": "bytes"
        },
        {
          "name": "claimant",
          "type": "address"
        },
        {
          "name": "email",
          "type": "string"
        }
      ],
      "name": "submitCombinedClaim",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "name",
          "type": "bytes"
        },
        {
          "name": "claimant",
          "type": "address"
        },
        {
          "name": "email",
          "type": "string"
        }
      ],
      "name": "submitPrefixClaim",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "closeClaims",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "ratifyClaims",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "destroy",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setClaimStatus",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "approved",
          "type": "bytes32[]"
        },
        {
          "name": "declined",
          "type": "bytes32[]"
        }
      ],
      "name": "setClaimStatuses",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "claimId",
          "type": "bytes32"
        }
      ],
      "name": "resolveClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "claimIds",
          "type": "bytes32[]"
        }
      ],
      "name": "resolveClaims",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "claimId",
          "type": "bytes32"
        }
      ],
      "name": "withdrawClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"priceOracle\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registrar\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"ratifier\",\"type\":\"address\"}],\"name\":\"removeRatifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingClaims\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"ratifier\",\"type\":\"address\"}],\"name\":\"addRatifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes\"},{\"name\":\"claimant\",\"type\":\"address\"},{\"name\":\"email\",\"type\":\"string\"}],\"name\":\"submitPrefixClaim\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"unresolvedClaims\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"claimed\",\"type\":\"string\"}],\"name\":\"getClaimCost\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"withdrawClaim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"ratifyClaims\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"claimed\",\"type\":\"string\"},{\"name\":\"dnsname\",\"type\":\"bytes\"},{\"name\":\"claimant\",\"type\":\"address\"},{\"name\":\"email\",\"type\":\"string\"}],\"name\":\"computeClaimId\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"claimId\",\"type\":\"bytes32\"},{\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setClaimStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes\"},{\"name\":\"claimant\",\"type\":\"address\"},{\"name\":\"email\",\"type\":\"string\"}],\"name\":\"submitExactClaim\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"phase\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"approved\",\"type\":\"bytes32[]\"},{\"name\":\"declined\",\"type\":\"bytes32[]\"}],\"name\":\"setClaimStatuses\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeClaims\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"name\":\"resolveClaims\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"REGISTRATION_PERIOD\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"name\":\"labelHash\",\"type\":\"bytes32\"},{\"name\":\"claimant\",\"type\":\"address\"},{\"name\":\"paid\",\"type\":\"uint256\"},{\"name\":\"status\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"name\",\"type\":\"bytes\"},{\"name\":\"claimant\",\"type\":\"address\"},{\"name\":\"email\",\"type\":\"string\"}],\"name\":\"submitCombinedClaim\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_priceOracle\",\"type\":\"address\"},{\"name\":\"_registrar\",\"type\":\"address\"},{\"name\":\"_ratifier\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"claimed\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"dnsname\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"paid\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"claimant\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"email\",\"type\":\"string\"}],\"name\":\"ClaimSubmitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ClaimStatusChanged\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"ShortNameClaims is a contract that permits people to register claims     for short (3-6 character) ENS names ahead of the auction process. *      Anyone with a DNS name registered before January 1, 2019, may use this     name to support a claim for a matching ENS name. In the event that     multiple claimants request the same name, the name will be assigned to     the oldest registered DNS name. *      Claims may be submitted by calling `submitExactClaim`,     `submitCombinedClaim` or `submitPrefixClaim` as appropriate. *      Claims require lodging a deposit equivalent to 365 days' registration of     the name. If the claim is approved, this deposit is spent, and the name     is registered for the claimant for 365 days. If the claim is declined,     the deposit will be returned.\",\"methods\":{\"closeClaims()\":{\"details\":\"Closes the claim submission period.     Callable only by the owner.\"},\"computeClaimId(string,bytes,address,string)\":{\"details\":\"Computes the claim ID for a submitted claim, so it can be looked up     using `claims`.\",\"params\":{\"claimant\":\"The address making the claim.\",\"claimed\":\"The name being claimed (eg, 'foo')\",\"dnsname\":\"The DNS-encoded name supporting the claim (eg, 'foo.test')\"},\"return\":\"The claim ID.\"},\"destroy()\":{\"details\":\"Cleans up the contract, after all claims are resolved.     Callable only by the owner, and only in final state.\"},\"getClaimCost(string)\":{\"details\":\"Returns the cost associated with placing a claim.\",\"params\":{\"claimed\":\"The name being claimed.\"},\"return\":\"The cost in wei for this claim.\"},\"ratifyClaims()\":{\"details\":\"Ratifies the current set of claims.     Ratification freezes the claims and their resolutions, and permits     them to be acted on.\"},\"resolveClaim(bytes32)\":{\"details\":\"Resolves a claim. Callable by anyone, only in the final phase.     Resolving a claim either registers the name or refunds the claimant.\",\"params\":{\"claimId\":\"The claim ID to resolve.\"}},\"resolveClaims(bytes32[])\":{\"details\":\"Resolves multiple claims. Callable by anyone, only in the final phase.\",\"params\":{\"claimIds\":\"A list of claim IDs to resolve.\"}},\"setClaimStatus(bytes32,bool)\":{\"details\":\"Sets the status of a claim to either APPROVED or DECLINED.     Callable only during the review phase, and only by the owner or     ratifier.\",\"params\":{\"approved\":\"True if the claim is approved, false if it is declined.\",\"claimId\":\"The claim to set the status of.\"}},\"setClaimStatuses(bytes32[],bytes32[])\":{\"details\":\"Sets the status of multiple claims. Callable only during the review     phase, and only by the owner or ratifier.\",\"params\":{\"approved\":\"A list of approved claim IDs.\",\"declined\":\"A list of declined claim IDs.\"}},\"submitCombinedClaim(bytes,address,string)\":{\"details\":\"Submits a claim for match on name+tld (eg, foo.tv -> footv).     Claimants must provide an amount of ether equal to 365 days'     registration cost; call `getClaimCost` to determine this amount.     Claimants should supply a little extra in case of variation in price;     any excess will be returned to the sender.\",\"params\":{\"claimant\":\"The address of the claimant.\",\"email\":\"An email address for correspondence regarding the claim.\",\"name\":\"The DNS-encoded name of the domain being used to support the            claim.\"}},\"submitExactClaim(bytes,address,string)\":{\"details\":\"Submits a claim for an exact match (eg, foo.test -> foo.eth).     Claimants must provide an amount of ether equal to 365 days'     registration cost; call `getClaimCost` to determine this amount.     Claimants should supply a little extra in case of variation in price;     any excess will be returned to the sender.\",\"params\":{\"claimant\":\"The address of the claimant.\",\"email\":\"An email address for correspondence regarding the claim.\",\"name\":\"The DNS-encoded name of the domain being used to support the            claim.\"}},\"submitPrefixClaim(bytes,address,string)\":{\"details\":\"Submits a claim for prefix match (eg, fooeth.test -> foo.eth).     Claimants must provide an amount of ether equal to 365 days'     registration cost; call `getClaimCost` to determine this amount.     Claimants should supply a little extra in case of variation in price;     any excess will be returned to the sender.\",\"params\":{\"claimant\":\"The address of the claimant.\",\"email\":\"An email address for correspondence regarding the claim.\",\"name\":\"The DNS-encoded name of the domain being used to support the            claim.\"}},\"withdrawClaim(bytes32)\":{\"details\":\"Withdraws a claim and refunds the claimant.     Callable only by the claimant, at any time.\",\"params\":{\"claimId\":\"The ID of the claim to withdraw.\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol\":\"ShortNameClaims\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/ethregistrar/contracts/BaseRegistrar.sol\":{\"keccak256\":\"0x8f8f496603d868fdf3ddf31c54fb6eed6a865f2adbf568fe0b3d999d4fa667f4\",\"urls\":[\"bzzr://b5ff38b350af3a3ab768429dd91c011fa8b67c8b50169d2ea9f907a428f74d2f\"]},\"/Users/makoto/work/ens/ethregistrar/contracts/PriceOracle.sol\":{\"keccak256\":\"0x9e21289a1fa35c8075409acca1de56450a24a139c6c905f789cd435409468a4d\",\"urls\":[\"bzzr://cf84b36faf6af6abba54cee75dbf31e28048eb666496d1f9535e2ccfd4353ec8\"]},\"/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol\":{\"keccak256\":\"0x5e31a8e713532343578f684b0a8eb71804dfa81dfb94aae6fcf0bee18fc7bd27\",\"urls\":[\"bzzr://46c59797b358fa5a8b9c4d5c7f1e137b82c4aca8351f41c02c274d170274aeef\"]},\"/Users/makoto/work/ens/ethregistrar/contracts/StringUtils.sol\":{\"keccak256\":\"0xb995b040adc3f1f27173ecf389bf69360e45989e2b4d8a503dec8ac0cc10cad3\",\"urls\":[\"bzzr://860ec334a72ebec747d06097a4adcef7f147a2861404a2dbe1b75aa8f0731b89\"]},\"@ensdomains/buffer/contracts/Buffer.sol\":{\"keccak256\":\"0x1264adbd06f6e05b04539bb225063a988b7fa90343d068de60cdde6cfb6fa92d\",\"urls\":[\"bzzr://8f1cb39e242b73bb7fac1f48bf0380ccccad14f06aae9cf4f87329cc78186122\"]},\"@ensdomains/dnssec-oracle/contracts/BytesUtils.sol\":{\"keccak256\":\"0x4014e689ef4a36cbf7103d88286abd2a7c560c2a7af99a561c33c61bc78be27a\",\"urls\":[\"bzzr://adf984996598f1e0d446eea1eda14ed2c49ab86a4ea1ae837cf4f9d99556b9c2\"]},\"@ensdomains/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzzr://8e5a54eed92d9bf8824175cf337e0df46e647deb0864eb5f091ea0b8132568f6\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0x659ba0f9a3392cd50a8a5fafaf5dfd8c6a0878f6a4613bceff4e90dceddcd865\",\"urls\":[\"bzzr://f704341d520fbc98716541f1b3f67737f0ee6e94adf072a66acb2bd25d593c2b\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xbbb6159006ae3639daea09f7d63987816d6cf3a99f52af919363e025d3abf3b8\",\"urls\":[\"bzzr://8368cc15cc427ce17e8f398860826b6332992cb23048b25f541dbc2a5f0df5d4\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzzr://08894efa2a557982070beda6a81a032407e70532d24bdafe80d39660c74904d9\"]},\"openzeppelin-solidity/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x1f059ee943273719130df645fa38069b792988e8b732585528d5b1265f5aa046\",\"urls\":[\"bzzr://5ca0242354a69ad26d8baa954cb650a56ed1f9c62bb32474a785c8327a77abfc\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b50604051606080620033a2833981018060405260608110156200003357600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548160ff02191690836002811115620000fa57fe5b02179055506200011a3360006200013e60201b620025621790919060201c565b620001358160016200013e60201b620025621790919060201c565b50505062000287565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200017957600080fd5b6200018b8282620001f460201b60201c565b156200019657600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200023057600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61310b80620002976000396000f3fe60806040526004361061014b5760003560e01c806384fd49c9116100b6578063c9fa06631161006f578063c9fa066314610aa6578063cfee88db14610b81578063d4f6841d14610b98578063e0f5409714610c1e578063eff0f59214610c49578063fb2f72d014610ce75761014b565b806384fd49c9146106385780639d6017471461064f578063a1169b7714610879578063a8712e8c146108c0578063b1c9fe6e14610a32578063c1203cb814610a6b5761014b565b80634d4de844116101085780634d4de8441461031c5780635a41ef3a1461048e57806365e3f8fa146104b95780637065cb48146105955780637cb68aa2146105e657806383197ef0146106215761014b565b8063173825d9146101505780632630c12f146101a15780632b20e397146101f85780633e08e84d1461024f5780633e6be3d2146102a057806341e6af01146102cb575b600080fd5b34801561015c57600080fd5b5061019f6004803603602081101561017357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156101ad57600080fd5b506101b6610ef6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020457600080fd5b5061020d610f1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025b57600080fd5b5061029e6004803603602081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f42565b005b3480156102ac57600080fd5b506102b5610fdf565b6040518082815260200191505060405180910390f35b3480156102d757600080fd5b5061031a600480360360208110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe5565b005b61048c6004803603606081101561033257600080fd5b810190808035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561040657600080fd5b82018360208201111561041857600080fd5b8035906020019184600183028401116401000000008311171561043a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611082565b005b34801561049a57600080fd5b506104a3611113565b6040518082815260200191505060405180910390f35b3480156104c557600080fd5b5061057f600480360360208110156104dc57600080fd5b81019080803590602001906401000000008111156104f957600080fd5b82018360208201111561050b57600080fd5b8035906020019184600183028401116401000000008311171561052d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611119565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105e4600480360360208110156105b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124a565b005b3480156105f257600080fd5b5061061f6004803603602081101561060957600080fd5b81019080803590602001909291905050506112e7565b005b34801561062d57600080fd5b50610636611534565b005b34801561064457600080fd5b5061064d611686565b005b34801561065b57600080fd5b506108636004803603608081101561067257600080fd5b810190808035906020019064010000000081111561068f57600080fd5b8201836020820111156106a157600080fd5b803590602001918460018302840111640100000000831117156106c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561072657600080fd5b82018360208201111561073857600080fd5b8035906020019184600183028401116401000000008311171561075a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156107dd57600080fd5b8201836020820111156107ef57600080fd5b8035906020019184600183028401116401000000008311171561081157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506117de565b6040518082815260200191505060405180910390f35b34801561088557600080fd5b506108be6004803603604081101561089c57600080fd5b810190808035906020019092919080351515906020019092919050505061186d565b005b610a30600480360360608110156108d657600080fd5b81019080803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184600183028401116401000000008311171561092757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156109aa57600080fd5b8201836020820111156109bc57600080fd5b803590602001918460018302840111640100000000831117156109de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c19565b005b348015610a3e57600080fd5b50610a47611c3a565b60405180826002811115610a5757fe5b60ff16815260200191505060405180910390f35b348015610a7757600080fd5b50610aa460048036036020811015610a8e57600080fd5b8101908080359060200190929190505050611c4d565b005b348015610ab257600080fd5b50610b7f60048036036040811015610ac957600080fd5b8101908080359060200190640100000000811115610ae657600080fd5b820183602082011115610af857600080fd5b80359060200191846020830284011164010000000083111715610b1a57600080fd5b909192939192939080359060200190640100000000811115610b3b57600080fd5b820183602082011115610b4d57600080fd5b80359060200191846020830284011164010000000083111715610b6f57600080fd5b909192939192939050505061213d565b005b348015610b8d57600080fd5b50610b966121bb565b005b348015610ba457600080fd5b50610c1c60048036036020811015610bbb57600080fd5b8101908080359060200190640100000000811115610bd857600080fd5b820183602082011115610bea57600080fd5b80359060200191846020830284011164010000000083111715610c0c57600080fd5b9091929391929390505050612304565b005b348015610c2a57600080fd5b50610c33612342565b6040518082815260200191505060405180910390f35b348015610c5557600080fd5b50610c8260048036036020811015610c6c57600080fd5b810190808035906020019092919050505061234a565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001826003811115610cd057fe5b60ff16815260200194505050505060405180910390f35b610e5760048036036060811015610cfd57600080fd5b8101908080359060200190640100000000811115610d1a57600080fd5b820183602082011115610d2c57600080fd5b80359060200191846001830284011164010000000083111715610d4e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610dd157600080fd5b820183602082011115610de357600080fd5b80359060200191846001830284011164010000000083111715610e0557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506123a7565b005b610e6d33600061242590919063ffffffff16565b610edf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b610ef38160006124b790919063ffffffff16565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f5633600161242590919063ffffffff16565b610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b610fdc8160016124b790919063ffffffff16565b50565b60065481565b610ff933600161242590919063ffffffff16565b61106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b61107f81600161256290919063ffffffff16565b50565b606061108f84600061260e565b90506110df60038251036040518060400160405280600381526020017f6574680000000000000000000000000000000000000000000000000000000000815250836126cc9092919063ffffffff16565b6110e857600080fd5b61110d61110560006003845103846126f69092919063ffffffff16565b858585612769565b50505050565b60075481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350e9a7158360006301e133806040518463ffffffff1660e01b81526004018080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111bc5780820151818401526020810190506111a1565b50505050905090810190601f1680156111e95780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d602081101561123257600080fd5b81019080805190602001909291905050509050919050565b61125e33600061242590919063ffffffff16565b6112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b6112e481600061256290919063ffffffff16565b50565b6112ef613057565b60046000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff16600381111561139557fe5b60038111156113a057fe5b815250509050806020015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113e257600080fd5b600060038111156113ef57fe5b816060015160038111156113ff57fe5b141561141d5760066000815480929190600190039190505550611431565b600760008154809291906001900391905055505b61143e8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015611487573d6000803e3d6000fd5b50817f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b6003604051808260038111156114bc57fe5b60ff16815260200191505060405180910390a2600460008381526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff021916905550505050565b61154833600061242590919063ffffffff16565b6115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b60028060028111156115c857fe5b600860009054906101000a900460ff1660028111156115e357fe5b14611656576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b60006007541461166557600080fd5b61166e33612cb4565b73ffffffffffffffffffffffffffffffffffffffff16ff5b61169a33600161242590919063ffffffff16565b61170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b600180600281111561171a57fe5b600860009054906101000a900460ff16600281111561173557fe5b146117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6000600654146117b757600080fd5b6002600860006101000a81548160ff021916908360028111156117d657fe5b021790555050565b600084805190602001208480519060200120848480519060200120604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b600180600281111561187b57fe5b600860009054906101000a900460ff16600281111561189657fe5b14611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b61191d33600061242590919063ffffffff16565b80611938575061193733600161242590919063ffffffff16565b5b61194157600080fd5b611949613057565b60046000858152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff1660038111156119ef57fe5b60038111156119fa57fe5b8152505090506000816040015111611a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60006003811115611a8757fe5b81606001516003811115611a9757fe5b1415611ac75760066000815480929190600190039190505550600760008154809291906001019190505550611b1c565b60016003811115611ad457fe5b81606001516003811115611ae457fe5b1415611b1b576000600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b8215611b8257600560008260000151815260200190815260200160002060009054906101000a900460ff1615611b5157600080fd5b6001600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600083611b90576002611b93565b60015b9050806004600087815260200190815260200160002060030160006101000a81548160ff02191690836003811115611bc757fe5b0217905550847f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b8260405180826003811115611bff57fe5b60ff16815260200191505060405180910390a25050505050565b6060611c2684600061260e565b9050611c3481858585612769565b50505050565b600860009054906101000a900460ff1681565b6002806002811115611c5b57fe5b600860009054906101000a900460ff166002811115611c7657fe5b14611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b611cf1613057565b60046000848152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff166003811115611d9757fe5b6003811115611da257fe5b8152505090506000816040015111611e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60016003811115611e2f57fe5b81606001516003811115611e3f57fe5b141561203b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fca247ac826000015160001c83602001516301e133806040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b505050506040513d6020811015611f2f57600080fd5b810190808051906020019092919050505050611fec600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fac57600080fd5b505afa158015611fc0573d6000803e3d6000fd5b505050506040513d6020811015611fd657600080fd5b8101908080519060200190929190505050612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015612035573d6000803e3d6000fd5b506120c4565b6002600381111561204857fe5b8160600151600381111561205857fe5b14156120ba5761206b8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f193505050501580156120b4573d6000803e3d6000fd5b506120c3565b60006120c257fe5b5b5b60076000815480929190600190039190505550600460008481526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff02191690555050505050565b60008090505b848490508110156121785761216b85858381811061215d57fe5b90506020020135600161186d565b8080600101915050612143565b5060008090505b828290508110156121b4576121a783838381811061219957fe5b90506020020135600061186d565b808060010191505061217f565b5050505050565b6121cf33600061242590919063ffffffff16565b612241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b600080600281111561224f57fe5b600860009054906101000a900460ff16600281111561226a57fe5b146122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6001600860006101000a81548160ff021916908360028111156122fc57fe5b021790555050565b60008090505b8282905081101561233d5761233083838381811061232457fe5b90506020020135611c4d565b808060010191505061230a565b505050565b6301e1338081565b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16905084565b60606123b484600061260e565b905060606123c385600161260e565b90506123cd6130a3565b6123e4825184510182612cbe90919063ffffffff16565b506123f88382612d1290919063ffffffff16565b5061240c8282612d1290919063ffffffff16565b5061241d8160000151878787612769565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561246057600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124f157600080fd5b6124fb8282612425565b61250457600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561259c57600080fd5b6125a68282612425565b156125b057600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600080905060008090505b8381101561266e57845182106126445760405180602001604052806000815250925050506126c6565b60016126598387612d3490919063ffffffff16565b0160ff1682019150808060010191505061261b565b508351811061268f57604051806020016040528060008152509150506126c6565b60006126a48286612d3490919063ffffffff16565b60ff1690506126c16001830182876126f69092919063ffffffff16565b925050505b92915050565b6000815183018451101580156126ed57506126ec84848460008651612d58565b5b90509392505050565b60608351828401111561270857600080fd5b6060826040519080825280601f01601f19166020018201604052801561273d5781602001600182028038833980820191505090505b509050600080602083019150856020880101905061275c828287612d7c565b8293505050509392505050565b600080600281111561277757fe5b600860009054906101000a900460ff16600281111561279257fe5b14612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b600061281086612dc5565b905060038110158015612824575060068111155b61282d57600080fd5b600061283b878787876117de565b905060006004600083815260200190815260200160002060020154146128c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f436c61696d20616c7265616479207375626d697474656400000000000000000081525060200191505060405180910390fd5b60006128d687600261260e565b511461294a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e616d65206d757374206265206120324c44000000000000000000000000000081525060200191505060405180910390fd5b600061295588611119565b9050803410156129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130be6022913960400191505060405180910390fd5b80341115612a02573373ffffffffffffffffffffffffffffffffffffffff166108fc8234039081150290604051600060405180830381858888f19350505050158015612a00573d6000803e3d6000fd5b505b6040518060800160405280898051906020012081526020018773ffffffffffffffffffffffffffffffffffffffff16815260200182815260200160006003811115612a4957fe5b815250600460008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690836003811115612ade57fe5b02179055509050506006600081548092919060010191905055507f186f55cfb37bd38b311b8d5e8a212edf83c4d92107f48dbb7a4a5c217714eab188888389896040518080602001806020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019080838360005b83811015612b9e578082015181840152602081019050612b83565b50505050905090810190601f168015612bcb5780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015612c04578082015181840152602081019050612be9565b50505050905090810190601f168015612c315780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a15050505050505050565b6000819050919050565b612cc66130a3565b600060208381612cd257fe5b0614612ceb5760208281612ce257fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b612d1a6130a3565b612d2c83846000015151848551612f3b565b905092915050565b6000828281518110612d4257fe5b602001015160f81c60f81b60f81c905092915050565b6000612d65848484612ff4565b612d70878785612ff4565b14905095945050505050565b5b60208110612da05781518352602083019250602082019150602081039050612d7d565b60006001826020036101000a0390508019835116818551168181178652505050505050565b6000806000809050600084519050600092505b80821015612f30576000858381518110612dee57fe5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e3457600183019250612f22565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e6d57600283019250612f21565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ea657600383019250612f20565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ede57600483019250612f1f565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612f1757600583019250612f1e565b6006830192505b5b5b5b5b508280600101935050612dd8565b829350505050919050565b612f436130a3565b8251821115612f5157600080fd5b84602001518285011115612f7c57612f7b856002612f758860200151888701613017565b02613033565b5b600080865180518760208301019350808887011115612f9b5787860182525b60208701925050505b60208410612fc75780518252602082019150602081019050602084039350612fa4565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b60008351828401111561300657600080fd5b818360208601012090509392505050565b6000818311156130295782905061302d565b8190505b92915050565b6060826000015190506130468383612cbe565b506130518382612d12565b50505050565b604051806080016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000600381111561309d57fe5b81525090565b60405180604001604052806060815260200160008152509056fe496e73756666696369656e742066756e647320666f72207265736572766174696f6ea165627a7a72305820fecb539687a8fef2b06bfc5c4eea90e3a45109a1491edf9fc2c7f4eda11f6ffe0029",
  "deployedBytecode": "0x60806040526004361061014b5760003560e01c806384fd49c9116100b6578063c9fa06631161006f578063c9fa066314610aa6578063cfee88db14610b81578063d4f6841d14610b98578063e0f5409714610c1e578063eff0f59214610c49578063fb2f72d014610ce75761014b565b806384fd49c9146106385780639d6017471461064f578063a1169b7714610879578063a8712e8c146108c0578063b1c9fe6e14610a32578063c1203cb814610a6b5761014b565b80634d4de844116101085780634d4de8441461031c5780635a41ef3a1461048e57806365e3f8fa146104b95780637065cb48146105955780637cb68aa2146105e657806383197ef0146106215761014b565b8063173825d9146101505780632630c12f146101a15780632b20e397146101f85780633e08e84d1461024f5780633e6be3d2146102a057806341e6af01146102cb575b600080fd5b34801561015c57600080fd5b5061019f6004803603602081101561017357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156101ad57600080fd5b506101b6610ef6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020457600080fd5b5061020d610f1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025b57600080fd5b5061029e6004803603602081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f42565b005b3480156102ac57600080fd5b506102b5610fdf565b6040518082815260200191505060405180910390f35b3480156102d757600080fd5b5061031a600480360360208110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe5565b005b61048c6004803603606081101561033257600080fd5b810190808035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561040657600080fd5b82018360208201111561041857600080fd5b8035906020019184600183028401116401000000008311171561043a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611082565b005b34801561049a57600080fd5b506104a3611113565b6040518082815260200191505060405180910390f35b3480156104c557600080fd5b5061057f600480360360208110156104dc57600080fd5b81019080803590602001906401000000008111156104f957600080fd5b82018360208201111561050b57600080fd5b8035906020019184600183028401116401000000008311171561052d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611119565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105e4600480360360208110156105b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124a565b005b3480156105f257600080fd5b5061061f6004803603602081101561060957600080fd5b81019080803590602001909291905050506112e7565b005b34801561062d57600080fd5b50610636611534565b005b34801561064457600080fd5b5061064d611686565b005b34801561065b57600080fd5b506108636004803603608081101561067257600080fd5b810190808035906020019064010000000081111561068f57600080fd5b8201836020820111156106a157600080fd5b803590602001918460018302840111640100000000831117156106c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561072657600080fd5b82018360208201111561073857600080fd5b8035906020019184600183028401116401000000008311171561075a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156107dd57600080fd5b8201836020820111156107ef57600080fd5b8035906020019184600183028401116401000000008311171561081157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506117de565b6040518082815260200191505060405180910390f35b34801561088557600080fd5b506108be6004803603604081101561089c57600080fd5b810190808035906020019092919080351515906020019092919050505061186d565b005b610a30600480360360608110156108d657600080fd5b81019080803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184600183028401116401000000008311171561092757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156109aa57600080fd5b8201836020820111156109bc57600080fd5b803590602001918460018302840111640100000000831117156109de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c19565b005b348015610a3e57600080fd5b50610a47611c3a565b60405180826002811115610a5757fe5b60ff16815260200191505060405180910390f35b348015610a7757600080fd5b50610aa460048036036020811015610a8e57600080fd5b8101908080359060200190929190505050611c4d565b005b348015610ab257600080fd5b50610b7f60048036036040811015610ac957600080fd5b8101908080359060200190640100000000811115610ae657600080fd5b820183602082011115610af857600080fd5b80359060200191846020830284011164010000000083111715610b1a57600080fd5b909192939192939080359060200190640100000000811115610b3b57600080fd5b820183602082011115610b4d57600080fd5b80359060200191846020830284011164010000000083111715610b6f57600080fd5b909192939192939050505061213d565b005b348015610b8d57600080fd5b50610b966121bb565b005b348015610ba457600080fd5b50610c1c60048036036020811015610bbb57600080fd5b8101908080359060200190640100000000811115610bd857600080fd5b820183602082011115610bea57600080fd5b80359060200191846020830284011164010000000083111715610c0c57600080fd5b9091929391929390505050612304565b005b348015610c2a57600080fd5b50610c33612342565b6040518082815260200191505060405180910390f35b348015610c5557600080fd5b50610c8260048036036020811015610c6c57600080fd5b810190808035906020019092919050505061234a565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001826003811115610cd057fe5b60ff16815260200194505050505060405180910390f35b610e5760048036036060811015610cfd57600080fd5b8101908080359060200190640100000000811115610d1a57600080fd5b820183602082011115610d2c57600080fd5b80359060200191846001830284011164010000000083111715610d4e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610dd157600080fd5b820183602082011115610de357600080fd5b80359060200191846001830284011164010000000083111715610e0557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506123a7565b005b610e6d33600061242590919063ffffffff16565b610edf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b610ef38160006124b790919063ffffffff16565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f5633600161242590919063ffffffff16565b610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b610fdc8160016124b790919063ffffffff16565b50565b60065481565b610ff933600161242590919063ffffffff16565b61106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b61107f81600161256290919063ffffffff16565b50565b606061108f84600061260e565b90506110df60038251036040518060400160405280600381526020017f6574680000000000000000000000000000000000000000000000000000000000815250836126cc9092919063ffffffff16565b6110e857600080fd5b61110d61110560006003845103846126f69092919063ffffffff16565b858585612769565b50505050565b60075481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350e9a7158360006301e133806040518463ffffffff1660e01b81526004018080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111bc5780820151818401526020810190506111a1565b50505050905090810190601f1680156111e95780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d602081101561123257600080fd5b81019080805190602001909291905050509050919050565b61125e33600061242590919063ffffffff16565b6112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b6112e481600061256290919063ffffffff16565b50565b6112ef613057565b60046000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff16600381111561139557fe5b60038111156113a057fe5b815250509050806020015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113e257600080fd5b600060038111156113ef57fe5b816060015160038111156113ff57fe5b141561141d5760066000815480929190600190039190505550611431565b600760008154809291906001900391905055505b61143e8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015611487573d6000803e3d6000fd5b50817f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b6003604051808260038111156114bc57fe5b60ff16815260200191505060405180910390a2600460008381526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff021916905550505050565b61154833600061242590919063ffffffff16565b6115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b60028060028111156115c857fe5b600860009054906101000a900460ff1660028111156115e357fe5b14611656576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b60006007541461166557600080fd5b61166e33612cb4565b73ffffffffffffffffffffffffffffffffffffffff16ff5b61169a33600161242590919063ffffffff16565b61170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b600180600281111561171a57fe5b600860009054906101000a900460ff16600281111561173557fe5b146117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6000600654146117b757600080fd5b6002600860006101000a81548160ff021916908360028111156117d657fe5b021790555050565b600084805190602001208480519060200120848480519060200120604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b600180600281111561187b57fe5b600860009054906101000a900460ff16600281111561189657fe5b14611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b61191d33600061242590919063ffffffff16565b80611938575061193733600161242590919063ffffffff16565b5b61194157600080fd5b611949613057565b60046000858152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff1660038111156119ef57fe5b60038111156119fa57fe5b8152505090506000816040015111611a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60006003811115611a8757fe5b81606001516003811115611a9757fe5b1415611ac75760066000815480929190600190039190505550600760008154809291906001019190505550611b1c565b60016003811115611ad457fe5b81606001516003811115611ae457fe5b1415611b1b576000600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b8215611b8257600560008260000151815260200190815260200160002060009054906101000a900460ff1615611b5157600080fd5b6001600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600083611b90576002611b93565b60015b9050806004600087815260200190815260200160002060030160006101000a81548160ff02191690836003811115611bc757fe5b0217905550847f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b8260405180826003811115611bff57fe5b60ff16815260200191505060405180910390a25050505050565b6060611c2684600061260e565b9050611c3481858585612769565b50505050565b600860009054906101000a900460ff1681565b6002806002811115611c5b57fe5b600860009054906101000a900460ff166002811115611c7657fe5b14611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b611cf1613057565b60046000848152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff166003811115611d9757fe5b6003811115611da257fe5b8152505090506000816040015111611e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60016003811115611e2f57fe5b81606001516003811115611e3f57fe5b141561203b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fca247ac826000015160001c83602001516301e133806040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b505050506040513d6020811015611f2f57600080fd5b810190808051906020019092919050505050611fec600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fac57600080fd5b505afa158015611fc0573d6000803e3d6000fd5b505050506040513d6020811015611fd657600080fd5b8101908080519060200190929190505050612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015612035573d6000803e3d6000fd5b506120c4565b6002600381111561204857fe5b8160600151600381111561205857fe5b14156120ba5761206b8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f193505050501580156120b4573d6000803e3d6000fd5b506120c3565b60006120c257fe5b5b5b60076000815480929190600190039190505550600460008481526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff02191690555050505050565b60008090505b848490508110156121785761216b85858381811061215d57fe5b90506020020135600161186d565b8080600101915050612143565b5060008090505b828290508110156121b4576121a783838381811061219957fe5b90506020020135600061186d565b808060010191505061217f565b5050505050565b6121cf33600061242590919063ffffffff16565b612241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b600080600281111561224f57fe5b600860009054906101000a900460ff16600281111561226a57fe5b146122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6001600860006101000a81548160ff021916908360028111156122fc57fe5b021790555050565b60008090505b8282905081101561233d5761233083838381811061232457fe5b90506020020135611c4d565b808060010191505061230a565b505050565b6301e1338081565b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16905084565b60606123b484600061260e565b905060606123c385600161260e565b90506123cd6130a3565b6123e4825184510182612cbe90919063ffffffff16565b506123f88382612d1290919063ffffffff16565b5061240c8282612d1290919063ffffffff16565b5061241d8160000151878787612769565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561246057600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124f157600080fd5b6124fb8282612425565b61250457600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561259c57600080fd5b6125a68282612425565b156125b057600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600080905060008090505b8381101561266e57845182106126445760405180602001604052806000815250925050506126c6565b60016126598387612d3490919063ffffffff16565b0160ff1682019150808060010191505061261b565b508351811061268f57604051806020016040528060008152509150506126c6565b60006126a48286612d3490919063ffffffff16565b60ff1690506126c16001830182876126f69092919063ffffffff16565b925050505b92915050565b6000815183018451101580156126ed57506126ec84848460008651612d58565b5b90509392505050565b60608351828401111561270857600080fd5b6060826040519080825280601f01601f19166020018201604052801561273d5781602001600182028038833980820191505090505b509050600080602083019150856020880101905061275c828287612d7c565b8293505050509392505050565b600080600281111561277757fe5b600860009054906101000a900460ff16600281111561279257fe5b14612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b600061281086612dc5565b905060038110158015612824575060068111155b61282d57600080fd5b600061283b878787876117de565b905060006004600083815260200190815260200160002060020154146128c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f436c61696d20616c7265616479207375626d697474656400000000000000000081525060200191505060405180910390fd5b60006128d687600261260e565b511461294a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e616d65206d757374206265206120324c44000000000000000000000000000081525060200191505060405180910390fd5b600061295588611119565b9050803410156129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130be6022913960400191505060405180910390fd5b80341115612a02573373ffffffffffffffffffffffffffffffffffffffff166108fc8234039081150290604051600060405180830381858888f19350505050158015612a00573d6000803e3d6000fd5b505b6040518060800160405280898051906020012081526020018773ffffffffffffffffffffffffffffffffffffffff16815260200182815260200160006003811115612a4957fe5b815250600460008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690836003811115612ade57fe5b02179055509050506006600081548092919060010191905055507f186f55cfb37bd38b311b8d5e8a212edf83c4d92107f48dbb7a4a5c217714eab188888389896040518080602001806020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019080838360005b83811015612b9e578082015181840152602081019050612b83565b50505050905090810190601f168015612bcb5780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015612c04578082015181840152602081019050612be9565b50505050905090810190601f168015612c315780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a15050505050505050565b6000819050919050565b612cc66130a3565b600060208381612cd257fe5b0614612ceb5760208281612ce257fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b612d1a6130a3565b612d2c83846000015151848551612f3b565b905092915050565b6000828281518110612d4257fe5b602001015160f81c60f81b60f81c905092915050565b6000612d65848484612ff4565b612d70878785612ff4565b14905095945050505050565b5b60208110612da05781518352602083019250602082019150602081039050612d7d565b60006001826020036101000a0390508019835116818551168181178652505050505050565b6000806000809050600084519050600092505b80821015612f30576000858381518110612dee57fe5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e3457600183019250612f22565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e6d57600283019250612f21565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ea657600383019250612f20565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ede57600483019250612f1f565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612f1757600583019250612f1e565b6006830192505b5b5b5b5b508280600101935050612dd8565b829350505050919050565b612f436130a3565b8251821115612f5157600080fd5b84602001518285011115612f7c57612f7b856002612f758860200151888701613017565b02613033565b5b600080865180518760208301019350808887011115612f9b5787860182525b60208701925050505b60208410612fc75780518252602082019150602081019050602084039350612fa4565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b60008351828401111561300657600080fd5b818360208601012090509392505050565b6000818311156130295782905061302d565b8190505b92915050565b6060826000015190506130468383612cbe565b506130518382612d12565b50505050565b604051806080016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000600381111561309d57fe5b81525090565b60405180604001604052806060815260200160008152509056fe496e73756666696369656e742066756e647320666f72207265736572766174696f6ea165627a7a72305820fecb539687a8fef2b06bfc5c4eea90e3a45109a1491edf9fc2c7f4eda11f6ffe0029",
  "sourceMap": "1134:12128:11:-;;;2112:260;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:260:11;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2112:260:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2226:12;2212:11;;:26;;;;;;;;;;;;;;;;;;2260:10;2248:9;;:22;;;;;;;;;;;;;;;;;;2288:10;2280:5;;:18;;;;;;;;;;;;;;;;;;;;;;;;2309:22;2320:10;2309:6;:10;;;;;;:22;;;;:::i;:::-;2341:24;2355:9;2341;:13;;;;;;:24;;;;:::i;:::-;2112:260;;;1134:12128;;259:181:47;354:1;335:21;;:7;:21;;;;327:30;;;;;;376:18;380:4;386:7;376:3;;;:18;;:::i;:::-;375:19;367:28;;;;;;429:4;406;:11;;:20;418:7;406:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;259:181;;:::o;786:162::-;858:4;901:1;882:21;;:7;:21;;;;874:30;;;;;;921:4;:11;;:20;933:7;921:20;;;;;;;;;;;;;;;;;;;;;;;;;914:27;;786:162;;;;:::o;1134:12128:11:-;;;;;;;",
  "deployedSourceMap": "1134:12128:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2808:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2808:92:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2808:92:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;1694:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1694:30:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1730:30:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3013:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3013:107:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3013:107:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;1851:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1851:25:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2906:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2906:101:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2906:101:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;6575:340;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6575:340:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6575:340:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6575:340:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6575:340:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6575:340:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6575:340:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6575:340:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6575:340:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6575:340:11;;;;;;;;;;;;;;;:::i;:::-;;1882:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1882:28:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3917:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3917:145:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3917:145:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3917:145:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3917:145:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3917:145:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3917:145:11;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2716:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2716:86:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2716:86:11;;;;;;;;;;;;;;;;;;;:::i;:::-;;11262:470;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11262:470:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11262:470:11;;;;;;;;;;;;;;;;;:::i;:::-;;7661:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7661:151:11;;;:::i;:::-;;7306:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7306:201:11;;;:::i;:::-;;3470:270;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3470:270:11;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3470:270:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3470:270:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3470:270:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3470:270:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3470:270:11;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3470:270:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3470:270:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3470:270:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3470:270:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3470:270:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3470:270:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3470:270:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3470:270:11;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8136:1068;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8136:1068:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8136:1068:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4680:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4680:210:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4680:210:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4680:210:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4680:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4680:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4680:210:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4680:210:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4680:210:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;4680:210:11;;;;;;;;;;;;;;;:::i;:::-;;1916:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1916:18:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10010:734;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10010:734:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10010:734:11;;;;;;;;;;;;;;;;;:::i;:::-;;9466:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9466:319:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9466:319:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9466:319:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9466:319:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9466:319:11;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9466:319:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9466:319:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;9466:319:11;;;;;;;;;;;;:::i;:::-;;7025:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7025:99:11;;;:::i;:::-;;10904:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10904:169:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10904:169:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10904:169:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10904:169:11;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;10904:169:11;;;;;;;;;;;;:::i;:::-;;1198:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1198:51:11;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1766:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1766:37:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1766:37:11;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5507:449;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5507:449:11;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5507:449:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5507:449:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5507:449:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;5507:449:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5507:449:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5507:449:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5507:449:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;5507:449:11;;;;;;;;;;;;;;;:::i;:::-;;2808:92;2417:22;2428:10;2417:6;:10;;:22;;;;:::i;:::-;2409:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2873:20;2887:5;2873:6;:13;;:20;;;;:::i;:::-;2808:92;:::o;1694:30::-;;;;;;;;;;;;;:::o;1730:::-;;;;;;;;;;;;;:::o;3013:107::-;2533:25;2547:10;2533:9;:13;;:25;;;;:::i;:::-;2525:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3087:26;3104:8;3087:9;:16;;:26;;;;:::i;:::-;3013:107;:::o;1851:25::-;;;;:::o;2906:101::-;2533:25;2547:10;2533:9;:13;;:25;;;;:::i;:::-;2525:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2977:23;2991:8;2977:9;:13;;:23;;;;:::i;:::-;2906:101;:::o;6575:340::-;6685:23;6717:17;6726:4;6732:1;6717:8;:17::i;:::-;6685:50;;6753:54;6791:1;6771:10;:17;:21;6794:12;;;;;;;;;;;;;;;;;6753:10;:17;;:54;;;;;:::i;:::-;6745:63;;;;;;6818:90;6837:46;6858:1;6881;6861:10;:17;:21;6837:10;:20;;:46;;;;;:::i;:::-;6886:4;6892:8;6902:5;6818:11;:90::i;:::-;6575:340;;;;:::o;1882:28::-;;;;:::o;3917:145::-;3982:4;4005:11;;;;;;;;;;;:17;;;4023:7;4032:1;1241:8;4005:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4005:50:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4005:50:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4005:50:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4005:50:11;;;;;;;;;;;;;;;;3998:57;;3917:145;;;:::o;2716:86::-;2417:22;2428:10;2417:6;:10;;:22;;;;:::i;:::-;2409:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2778:17;2789:5;2778:6;:10;;:17;;;;:::i;:::-;2716:86;:::o;11262:470::-;11321:18;;:::i;:::-;11342:6;:15;11349:7;11342:15;;;;;;;;;;;11321:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11427:5;:14;;;11413:28;;:10;:28;;;11405:37;;;;;;11472:14;11456:30;;;;;;;;:5;:12;;;:30;;;;;;;;;11453:124;;;11502:13;;:15;;;;;;;;;;;;;;11453:124;;;11548:16;;:18;;;;;;;;;;;;;;11453:124;11587:25;11597:5;:14;;;11587:9;:25::i;:::-;:34;;:46;11622:5;:10;;;11587:46;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11587:46:11;11667:7;11648:45;11676:16;11648:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;11710:6;:15;11717:7;11710:15;;;;;;;;;;;;11703:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11262:470;;:::o;7661:151::-;2417:22;2428:10;2417:6;:10;;:22;;;;:::i;:::-;2409:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7707:11;2665:1;2656:10;;;;;;;;:5;;;;;;;;;;;:10;;;;;;;;;2648:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7758:1;7738:16;;:21;7730:30;;;;;;7783:21;7793:10;7783:9;:21::i;:::-;7770:35;;;7306:201;2533:25;2547:10;2533:9;:13;;:25;;;;:::i;:::-;2525:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7360:12;2665:1;2656:10;;;;;;;;:5;;;;;;;;;;;:10;;;;;;;;;2648:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7469:1;7452:13;;:18;7444:27;;;;;;7489:11;7481:5;;:19;;;;;;;;;;;;;;;;;;;;;;;;2598:1;7306:201::o;3470:270::-;3598:7;3667;3651:25;;;;;;3688:7;3678:18;;;;;;3698:8;3724:5;3708:23;;;;;;3634:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3634:98:11;;;3624:109;;;;;;3617:116;;3470:270;;;;;;:::o;8136:1068::-;8207:12;2665:1;2656:10;;;;;;;;:5;;;;;;;;;;;:10;;;;;;;;;2648:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8285:22;8296:10;8285:6;:10;;:22;;;;:::i;:::-;:51;;;;8311:25;8325:10;8311:9;:13;;:25;;;;:::i;:::-;8285:51;8277:60;;;;;;8348:18;;:::i;:::-;8369:6;:15;8376:7;8369:15;;;;;;;;;;;8348:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8415:1;8402:5;:10;;;:14;8394:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8466:14;8450:30;;;;;;;;:5;:12;;;:30;;;;;;;;;8447:350;;;8569:13;;:15;;;;;;;;;;;;;;8596:16;;:18;;;;;;;;;;;;;8447:350;;;8650:15;8634:31;;;;;;;;:5;:12;;;:31;;;;;;;;;8631:166;;;8781:5;8748:13;:30;8762:5;:15;;;8748:30;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;8631:166;8447:350;8918:8;8915:125;;;8949:13;:30;8963:5;:15;;;8949:30;;;;;;;;;;;;;;;;;;;;;8948:31;8940:40;;;;;;9025:4;8992:13;:30;9006:5;:15;;;8992:30;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8915:125;9050:13;9066:8;:40;;9091:15;9066:40;;;9075:15;9066:40;9050:56;;9141:6;9116;:15;9123:7;9116:15;;;;;;;;;;;:22;;;:31;;;;;;;;;;;;;;;;;;;;;;;;9181:7;9162:35;9190:6;9162:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2702:1;;8136:1068;;;:::o;4680:210::-;4789:21;4813:17;4822:4;4828:1;4813:8;:17::i;:::-;4789:41;;4840:43;4852:7;4861:4;4867:8;4877:5;4840:11;:43::i;:::-;4680:210;;;;:::o;1916:18::-;;;;;;;;;;;;;:::o;10010:734::-;10064:11;2665:1;2656:10;;;;;;;;:5;;;;;;;;;;;:10;;;;;;;;;2648:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10087:18;;:::i;:::-;10108:6;:15;10115:7;10108:15;;;;;;;;;;;10087:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10154:1;10141:5;:10;;;:14;10133:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10205:15;10189:31;;;;;;;;:5;:12;;;:31;;;;;;;;;10186:491;;;10236:9;;;;;;;;;;;:18;;;10263:5;:15;;;10255:24;;10281:5;:14;;;1241:8;10236:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10236:81:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10236:81:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10236:81:11;;;;;;;;;;;;;;;;;10331:28;10341:9;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10341:17:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10341:17:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10341:17:11;;;;;;;;;;;;;;;;10331:9;:28::i;:::-;:37;;:49;10369:5;:10;;;10331:49;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10331:49:11;10186:491;;;10416:15;10400:31;;;;;;;;:5;:12;;;:31;;;;;;;;;10397:280;;;10447:25;10457:5;:14;;;10447:9;:25::i;:::-;:34;;:46;10482:5;:10;;;10447:46;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10447:46:11;10397:280;;;10660:5;10653:13;;;;10397:280;10186:491;10687:16;;:18;;;;;;;;;;;;;;10722:6;:15;10729:7;10722:15;;;;;;;;;;;;10715:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2702:1;10010:734;;:::o;9466:319::-;9573:6;9582:1;9573:10;;9569:100;9589:8;;:15;;9585:1;:19;9569:100;;;9625:33;9640:8;;9649:1;9640:11;;;;;;;;;;;;;9653:4;9625:14;:33::i;:::-;9606:3;;;;;;;9569:100;;;;9682:6;9691:1;9682:10;;9678:101;9698:8;;:15;;9694:1;:19;9678:101;;;9734:34;9749:8;;9758:1;9749:11;;;;;;;;;;;;;9762:5;9734:14;:34::i;:::-;9715:3;;;;;;;9678:101;;;;9466:319;;;;:::o;7025:99::-;2417:22;2428:10;2417:6;:10;;:22;;;;:::i;:::-;2409:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7075:10;2665:1;2656:10;;;;;;;;:5;;;;;;;;;;;:10;;;;;;;;;2648:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7105:12;7097:5;;:20;;;;;;;;;;;;;;;;;;;;;;;;2477:1;7025:99::o;10904:169::-;10979:6;10988:1;10979:10;;10975:92;10995:8;;:15;;10991:1;:19;10975:92;;;11031:25;11044:8;;11053:1;11044:11;;;;;;;;;;;;;11031:12;:25::i;:::-;11012:3;;;;;;;10975:92;;;;10904:169;;:::o;1198:51::-;1241:8;1198:51;:::o;1766:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5507:449::-;5619:23;5651:17;5660:4;5666:1;5651:8;:17::i;:::-;5619:50;;5679:24;5712:17;5721:4;5727:1;5712:8;:17::i;:::-;5679:51;;5740:24;;:::i;:::-;5774:48;5803:11;:18;5783:10;:17;:38;5774:3;:8;;:48;;;;:::i;:::-;;5832:22;5843:10;5832:3;:10;;:22;;;;:::i;:::-;;5864:23;5875:11;5864:3;:10;;:23;;;;:::i;:::-;;5898:51;5917:3;:7;;;5927:4;5933:8;5943:5;5898:11;:51::i;:::-;5507:449;;;;;;:::o;786:162:47:-;858:4;901:1;882:21;;:7;:21;;;;874:30;;;;;;921:4;:11;;:20;933:7;921:20;;;;;;;;;;;;;;;;;;;;;;;;;914:27;;786:162;;;;:::o;514:184::-;612:1;593:21;;:7;:21;;;;585:30;;;;;;633:18;637:4;643:7;633:3;:18::i;:::-;625:27;;;;;;686:5;663:4;:11;;:20;675:7;663:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;514:184;;:::o;259:181::-;354:1;335:21;;:7;:21;;;;327:30;;;;;;376:18;380:4;386:7;376:3;:18::i;:::-;375:19;367:28;;;;;;429:4;406;:11;;:20;418:7;406:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;259:181;;:::o;12647:489:11:-;12716:13;12780:11;12794:1;12780:15;;12809:6;12818:1;12809:10;;12805:140;12825:3;12821:1;:7;12805:140;;;12862:4;:11;12852:6;:21;12849:35;;12875:9;;;;;;;;;;;;;;;;;;12849:35;12933:1;12908:22;12923:6;12908:4;:14;;:22;;;;:::i;:::-;:26;12898:36;;;;;;12830:3;;;;;;;12805:140;;;;13008:4;:11;12998:6;:21;12995:35;;13021:9;;;;;;;;;;;;;;;;;12995:35;13040:8;13051:22;13066:6;13051:4;:14;;:22;;;;:::i;:::-;13040:33;;;;13097:31;13121:1;13112:6;:10;13124:3;13097:4;:14;;:31;;;;;:::i;:::-;13083:46;;;;12647:489;;;;;:::o;4460:205:21:-;4551:4;4598:5;:12;4589:6;:21;4574:4;:11;:36;;:84;;;;;4614:44;4621:4;4627:6;4635:5;4642:1;4645:5;:12;4614:6;:44::i;:::-;4574:84;4567:91;;4460:205;;;;;:::o;8683:393::-;8766:12;8814:4;:11;8807:3;8798:6;:12;:27;;8790:36;;;;;;8837:16;8866:3;8856:14;;;;;;;;;;;;;;;;;;;;;;;;;29:1:-1;21:6;17:14;116:4;104:10;96:6;87:34;147:4;139:6;135:17;125:27;;0:156;8856:14:21;;;;8837:33;;8880:9;8899:8;8958:2;8953:3;8949:12;8941:20;;9000:6;8995:2;8989:4;8985:13;8981:26;8974:33;;9026:22;9033:4;9039:3;9044;9026:6;:22::i;:::-;9066:3;9059:10;;;;;8683:393;;;;;:::o;11738:903:11:-;11857:10;2665:1;2656:10;;;;;;;;:5;;;;;;;;;;;:10;;;;;;;;;2648:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11879:8;11890:16;:7;:14;:16::i;:::-;11879:27;;11931:1;11924:3;:8;;:20;;;;;11943:1;11936:3;:8;;11924:20;11916:29;;;;;;11956:15;11974:46;11989:7;11998:4;12004:8;12014:5;11974:14;:46::i;:::-;11956:64;;12062:1;12038:6;:15;12045:7;12038:15;;;;;;;;;;;:20;;;:25;12030:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12209:1;12180:17;12189:4;12195:1;12180:8;:17::i;:::-;12174:31;:36;12166:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12244:10;12257:21;12270:7;12257:12;:21::i;:::-;12244:34;;12309:5;12296:9;:18;;12288:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12378:5;12366:9;:17;12363:85;;;12399:10;:19;;:38;12431:5;12419:9;:17;12399:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12399:38:11;12363:85;12476:65;;;;;;;;12498:7;12482:25;;;;;;12476:65;;;;12509:8;12476:65;;;;;;12519:5;12476:65;;;;12526:14;12476:65;;;;;;;;;;;12458:6;:15;12465:7;12458:15;;;;;;;;;;;:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12551:13;;:15;;;;;;;;;;;;;12581:53;12596:7;12605:4;12611:5;12618:8;12628:5;12581:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12581:53:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12581:53:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12581:53:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2702:1;;;11738:903;;;;;:::o;13142:118::-;13197:15;13247:4;13224:29;;13142:118;;;:::o;978:455:20:-;1048:13;;:::i;:::-;1094:1;1088:2;1077:8;:13;;;;;;:18;1073:81;;1140:2;1129:8;:13;;;;;;1123:2;:20;1111:32;;;;1073:81;1224:8;1209:3;:12;;:23;;;;;1282:4;1276:11;1312:3;1307;1300:16;1341:1;1336:3;1329:14;1386:8;1381:3;1377:18;1373:2;1369:27;1363:4;1356:41;1251:156;1423:3;1416:10;;978:455;;;;:::o;4946:161::-;5023:13;;:::i;:::-;5055:45;5061:3;5066;:7;;;:14;5082:4;5088;:11;5055:5;:45::i;:::-;5048:52;;4946:161;;;;:::o;5331:122:21:-;5402:9;5436:4;5441:3;5436:9;;;;;;;;;;;;;;;;5430:16;;5423:23;;5331:122;;;;:::o;3277:209::-;3396:4;3448:31;3455:5;3462:11;3475:3;3448:6;:31::i;:::-;3419:25;3426:4;3432:6;3440:3;3419:6;:25::i;:::-;:60;3412:67;;3277:209;;;;;;;:::o;7914:549::-;8034:165;8048:2;8041:3;:9;8034:165;;8123:3;8117:10;8111:4;8104:24;8163:2;8155:10;;;;8186:2;8179:9;;;;8059:2;8052:9;;;;8034:165;;;8241:9;8273:1;8266:3;8261:2;:8;8253:3;:17;:21;8241:33;;8342:4;8338:9;8332:3;8326:10;8322:26;8394:4;8387;8381:11;8377:22;8438:7;8428:8;8425:21;8419:4;8412:35;8293:164;;;;;;:::o;223:606:14:-;279:4;295:8;313:6;322:1;313:10;;333:15;357:1;351:15;333:33;;386:1;380:7;;376:427;393:10;389:1;:14;376:427;;;426:6;441:1;444;435:11;;;;;;;;;;;;;;;;426:20;;467:4;463:8;;:1;:8;;;;460:333;;;496:1;491:6;;;;460:333;;;526:4;522:8;;:1;:8;;;;518:275;;;555:1;550:6;;;;518:275;;;585:4;581:8;;:1;:8;;;;577:216;;;614:1;609:6;;;;577:216;;;644:4;640:8;;:1;:8;;;;636:157;;;673:1;668:6;;;;636:157;;;703:4;699:8;;:1;:8;;;;695:98;;;732:1;727:6;;;;695:98;;;777:1;772:6;;;;695:98;636:157;577:216;518:275;460:333;376:427;405:5;;;;;;;376:427;;;819:3;812:10;;;;;223:606;;;:::o;2875:1326:20:-;2970:13;;:::i;:::-;3010:4;:11;3003:3;:18;;2995:27;;;;;;3049:3;:12;;;3043:3;3037;:9;:24;3033:100;;;3077:45;3084:3;3120:1;3089:28;3093:3;:12;;;3113:3;3107;:9;3089:3;:28::i;:::-;:32;3077:6;:45::i;:::-;3033:100;3143:9;3162:8;3272:3;3266:10;3355:6;3349:13;3483:3;3478:2;3470:6;3466:15;3462:25;3454:33;;3579:6;3573:3;3568;3564:13;3561:25;3558:2;;;3629:3;3624;3620:13;3612:6;3605:29;3558:2;3678;3672:4;3668:13;3661:20;;3189:502;;3751:165;3765:2;3758:3;:9;3751:165;;3840:3;3834:10;3828:4;3821:24;3880:2;3872:10;;;;3903:2;3896:9;;;;3776:2;3769:9;;;;3751:165;;;3958:9;3990:1;3983:3;3978:2;:8;3970:3;:17;:21;3958:33;;4059:4;4055:9;4049:3;4043:10;4039:26;4111:4;4104;4098:11;4094:22;4155:7;4145:8;4142:21;4136:4;4129:35;4010:164;;4191:3;4184:10;;;;;2875:1326;;;;;;:::o;306:238:21:-;387:11;434:4;:11;427:3;418:6;:12;:27;;410:36;;;;;;524:3;515:6;510:2;504:4;500:13;496:26;486:42;479:49;;465:73;;;;;:::o;2035:134:20:-;2085:4;2109:1;2105;:5;2101:44;;;2133:1;2126:8;;;;2101:44;2161:1;2154:8;;2035:134;;;;;:::o;1862:167::-;1935:19;1957:3;:7;;;1935:29;;1974:19;1979:3;1984:8;1974:4;:19::i;:::-;;2003;2010:3;2015:6;2003;:19::i;:::-;;1862:167;;;:::o;1134:12128:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.0;\n\nimport \"./BaseRegistrar.sol\";\nimport \"./StringUtils.sol\";\nimport \"./PriceOracle.sol\";\n\nimport \"@ensdomains/buffer/contracts/Buffer.sol\";\nimport \"@ensdomains/dnssec-oracle/contracts/BytesUtils.sol\";\nimport \"openzeppelin-solidity/contracts/access/Roles.sol\";\n\n/**\n * @dev ShortNameClaims is a contract that permits people to register claims\n *      for short (3-6 character) ENS names ahead of the auction process.\n *\n *      Anyone with a DNS name registered before January 1, 2019, may use this\n *      name to support a claim for a matching ENS name. In the event that\n *      multiple claimants request the same name, the name will be assigned to\n *      the oldest registered DNS name.\n *\n *      Claims may be submitted by calling `submitExactClaim`,\n *      `submitCombinedClaim` or `submitPrefixClaim` as appropriate.\n *\n *      Claims require lodging a deposit equivalent to 365 days' registration of\n *      the name. If the claim is approved, this deposit is spent, and the name\n *      is registered for the claimant for 365 days. If the claim is declined,\n *      the deposit will be returned.\n */\ncontract ShortNameClaims {\n    using Roles for Roles.Role;\n\n    uint constant public REGISTRATION_PERIOD = 31536000;\n\n    using Buffer for Buffer.buffer;\n    using BytesUtils for bytes;\n    using StringUtils for string;\n\n    enum Phase {\n        OPEN,\n        REVIEW,\n        FINAL\n    }\n\n    enum Status {\n        PENDING,\n        APPROVED,\n        DECLINED,\n        WITHDRAWN\n    }\n\n    struct Claim {\n        bytes32 labelHash;\n        address claimant;\n        uint paid;\n        Status status;\n    }\n\n    Roles.Role owners;\n    Roles.Role ratifiers;\n\n    PriceOracle public priceOracle;\n    BaseRegistrar public registrar;\n    mapping(bytes32=>Claim) public claims;\n    mapping(bytes32=>bool) approvedNames;\n    uint public pendingClaims;\n    uint public unresolvedClaims;\n    Phase public phase;\n\n    event ClaimSubmitted(string claimed, bytes dnsname, uint paid, address claimant, string email);\n    event ClaimStatusChanged(bytes32 indexed claimId, Status status);\n\n    constructor(PriceOracle _priceOracle, BaseRegistrar _registrar, address _ratifier) public {\n        priceOracle = _priceOracle;\n        registrar = _registrar;\n        phase = Phase.OPEN;\n\n        owners.add(msg.sender);\n        ratifiers.add(_ratifier);\n    }\n\n    modifier onlyOwner() {\n        require(owners.has(msg.sender), \"Caller must be an owner\");\n        _;\n    }\n\n    modifier onlyRatifier() {\n        require(ratifiers.has(msg.sender), \"Caller must be a ratifier\");\n        _;\n    }\n\n    modifier inPhase(Phase p) {\n        require(phase == p, \"Not in required phase\");\n        _;\n    }\n\n    function addOwner(address owner) external onlyOwner {\n        owners.add(owner);\n    }\n\n    function removeOwner(address owner) external onlyOwner {\n        owners.remove(owner);\n    }\n\n    function addRatifier(address ratifier) external onlyRatifier {\n        ratifiers.add(ratifier);\n    }\n\n    function removeRatifier(address ratifier) external onlyRatifier {\n        ratifiers.remove(ratifier);\n    }\n\n    /**\n     * @dev Computes the claim ID for a submitted claim, so it can be looked up\n     *      using `claims`.\n     * @param claimed The name being claimed (eg, 'foo')\n     * @param dnsname The DNS-encoded name supporting the claim (eg, 'foo.test')\n     * @param claimant The address making the claim.\n     * @return The claim ID.\n     */\n    function computeClaimId(string memory claimed, bytes memory dnsname, address claimant, string memory email) public pure returns(bytes32) {\n        return keccak256(abi.encodePacked(keccak256(bytes(claimed)), keccak256(dnsname), claimant, keccak256(bytes(email))));\n    }\n\n    /**\n     * @dev Returns the cost associated with placing a claim.\n     * @param claimed The name being claimed.\n     * @return The cost in wei for this claim.\n     */\n    function getClaimCost(string memory claimed) public view returns(uint) {\n        return priceOracle.price(claimed, 0, REGISTRATION_PERIOD);\n    }\n\n    /**\n     * @dev Submits a claim for an exact match (eg, foo.test -> foo.eth).\n     *      Claimants must provide an amount of ether equal to 365 days'\n     *      registration cost; call `getClaimCost` to determine this amount.\n     *      Claimants should supply a little extra in case of variation in price;\n     *      any excess will be returned to the sender.\n     * @param name The DNS-encoded name of the domain being used to support the\n     *             claim.\n     * @param claimant The address of the claimant.\n     * @param email An email address for correspondence regarding the claim.\n     */\n    function submitExactClaim(bytes memory name, address claimant, string memory email) public payable {\n        string memory claimed = getLabel(name, 0);\n        handleClaim(claimed, name, claimant, email);\n    }\n\n    /**\n     * @dev Submits a claim for match on name+tld (eg, foo.tv -> footv).\n     *      Claimants must provide an amount of ether equal to 365 days'\n     *      registration cost; call `getClaimCost` to determine this amount.\n     *      Claimants should supply a little extra in case of variation in price;\n     *      any excess will be returned to the sender.\n     * @param name The DNS-encoded name of the domain being used to support the\n     *             claim.\n     * @param claimant The address of the claimant.\n     * @param email An email address for correspondence regarding the claim.\n     */\n    function submitCombinedClaim(bytes memory name, address claimant, string memory email) public payable {\n        bytes memory firstLabel = bytes(getLabel(name, 0));\n        bytes memory secondLabel = bytes(getLabel(name, 1));\n        Buffer.buffer memory buf;\n        buf.init(firstLabel.length + secondLabel.length);\n        buf.append(firstLabel);\n        buf.append(secondLabel);\n\n        handleClaim(string(buf.buf), name, claimant, email);\n    }\n\n    /**\n     * @dev Submits a claim for prefix match (eg, fooeth.test -> foo.eth).\n     *      Claimants must provide an amount of ether equal to 365 days'\n     *      registration cost; call `getClaimCost` to determine this amount.\n     *      Claimants should supply a little extra in case of variation in price;\n     *      any excess will be returned to the sender.\n     * @param name The DNS-encoded name of the domain being used to support the\n     *             claim.\n     * @param claimant The address of the claimant.\n     * @param email An email address for correspondence regarding the claim.\n     */\n    function submitPrefixClaim(bytes memory name, address claimant, string memory email) public payable {\n        bytes memory firstLabel = bytes(getLabel(name, 0));\n        require(firstLabel.equals(firstLabel.length - 3, bytes(\"eth\")));\n        handleClaim(string(firstLabel.substring(0, firstLabel.length - 3)), name, claimant, email);\n    }\n\n    /**\n     * @dev Closes the claim submission period.\n     *      Callable only by the owner.\n     */\n    function closeClaims() external onlyOwner inPhase(Phase.OPEN) {\n        phase = Phase.REVIEW;\n    }\n\n    /**\n     * @dev Ratifies the current set of claims.\n     *      Ratification freezes the claims and their resolutions, and permits\n     *      them to be acted on.\n     */\n    function ratifyClaims() external onlyRatifier inPhase(Phase.REVIEW) {\n        // Can't ratify until all claims have a resolution.\n        require(pendingClaims == 0);\n        phase = Phase.FINAL;\n    }\n\n    /**\n     * @dev Cleans up the contract, after all claims are resolved.\n     *      Callable only by the owner, and only in final state.\n     */\n    function destroy() external onlyOwner inPhase(Phase.FINAL) {\n        require(unresolvedClaims == 0);\n        selfdestruct(toPayable(msg.sender));\n    }\n\n    /**\n     * @dev Sets the status of a claim to either APPROVED or DECLINED.\n     *      Callable only during the review phase, and only by the owner or\n     *      ratifier.\n     * @param claimId The claim to set the status of.\n     * @param approved True if the claim is approved, false if it is declined.\n     */\n    function setClaimStatus(bytes32 claimId, bool approved) public inPhase(Phase.REVIEW) {\n        // Only callable by owner or ratifier\n        require(owners.has(msg.sender) || ratifiers.has(msg.sender));\n\n        Claim memory claim = claims[claimId];\n        require(claim.paid > 0, \"Claim not found\");\n\n        if(claim.status == Status.PENDING) {\n          // Claim went from pending -> approved/declined; update counters\n          pendingClaims--;\n          unresolvedClaims++;\n        } else if(claim.status == Status.APPROVED) {\n          // Claim was previously approved; remove from approved map\n          approvedNames[claim.labelHash] = false;\n        }\n\n        // Claim was just approved; check the name was not already used, and add\n        // to approved map\n        if(approved) {\n          require(!approvedNames[claim.labelHash]);\n          approvedNames[claim.labelHash] = true;\n        }\n\n        Status status = approved?Status.APPROVED:Status.DECLINED;\n        claims[claimId].status = status;\n        emit ClaimStatusChanged(claimId, status);\n    }\n\n    /**\n     * @dev Sets the status of multiple claims. Callable only during the review\n     *      phase, and only by the owner or ratifier.\n     * @param approved A list of approved claim IDs.\n     * @param declined A list of declined claim IDs.\n     */\n    function setClaimStatuses(bytes32[] calldata approved, bytes32[] calldata declined) external {\n        for(uint i = 0; i < approved.length; i++) {\n            setClaimStatus(approved[i], true);\n        }\n        for(uint i = 0; i < declined.length; i++) {\n            setClaimStatus(declined[i], false);\n        }\n    }\n\n    /**\n     * @dev Resolves a claim. Callable by anyone, only in the final phase.\n     *      Resolving a claim either registers the name or refunds the claimant.\n     * @param claimId The claim ID to resolve.\n     */\n    function resolveClaim(bytes32 claimId) public inPhase(Phase.FINAL) {\n        Claim memory claim = claims[claimId];\n        require(claim.paid > 0, \"Claim not found\");\n\n        if(claim.status == Status.APPROVED) {\n            registrar.register(uint256(claim.labelHash), claim.claimant, REGISTRATION_PERIOD);\n            toPayable(registrar.owner()).transfer(claim.paid);\n        } else if(claim.status == Status.DECLINED) {\n            toPayable(claim.claimant).transfer(claim.paid);\n        } else {\n            // It should not be possible to get to FINAL with claim IDs that are\n            // not either APPROVED or DECLINED.\n            assert(false);\n        }\n\n        unresolvedClaims--;\n        delete claims[claimId];\n    }\n\n    /**\n     * @dev Resolves multiple claims. Callable by anyone, only in the final phase.\n     * @param claimIds A list of claim IDs to resolve.\n     */\n    function resolveClaims(bytes32[] calldata claimIds) external {\n        for(uint i = 0; i < claimIds.length; i++) {\n            resolveClaim(claimIds[i]);\n        }\n    }\n\n    /**\n     * @dev Withdraws a claim and refunds the claimant.\n     *      Callable only by the claimant, at any time.\n     * @param claimId The ID of the claim to withdraw.\n     */\n    function withdrawClaim(bytes32 claimId) external {\n        Claim memory claim = claims[claimId];\n\n        // Only callable by claimant\n        require(msg.sender == claim.claimant);\n\n        if(claim.status == Status.PENDING) {\n            pendingClaims--;\n        } else {\n            unresolvedClaims--;\n        }\n\n        toPayable(claim.claimant).transfer(claim.paid);\n        emit ClaimStatusChanged(claimId, Status.WITHDRAWN);\n        delete claims[claimId];\n    }\n\n    function handleClaim(string memory claimed, bytes memory name, address claimant, string memory email) internal inPhase(Phase.OPEN) {\n        uint len = claimed.strlen();\n        require(len >= 3 && len <= 6);\n\n        bytes32 claimId = computeClaimId(claimed, name, claimant, email);\n        require(claims[claimId].paid == 0, \"Claim already submitted\");\n\n        // Require that there are at most two labels (name.tld)\n        require(bytes(getLabel(name, 2)).length == 0, \"Name must be a 2LD\");\n\n        uint price = getClaimCost(claimed);\n        require(msg.value >= price, \"Insufficient funds for reservation\");\n        if(msg.value > price) {\n            msg.sender.transfer(msg.value - price);\n        }\n\n        claims[claimId] = Claim(keccak256(bytes(claimed)), claimant, price, Status.PENDING);\n        pendingClaims++;\n        emit ClaimSubmitted(claimed, name, price, claimant, email);\n    }\n\n    function getLabel(bytes memory name, uint idx) internal pure returns(string memory) {\n        // Skip the first `idx` labels\n        uint offset = 0;\n        for(uint i = 0; i < idx; i++) {\n            if(offset >= name.length) return \"\";\n            offset += name.readUint8(offset) + 1;\n        }\n\n        // Read the label we care about\n        if(offset >= name.length) return '';\n        uint len = name.readUint8(offset);\n        return string(name.substring(offset + 1, len));\n    }\n\n    function toPayable(address addr) internal pure returns(address payable) {\n        return address(uint160(addr));\n    }\n}\n",
  "sourcePath": "/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol",
  "ast": {
    "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol",
    "exportedSymbols": {
      "ShortNameClaims": [
        4014
      ]
    },
    "id": 4015,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3038,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/BaseRegistrar.sol",
        "file": "./BaseRegistrar.sol",
        "id": 3039,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 144,
        "src": "25:29:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/StringUtils.sol",
        "file": "./StringUtils.sol",
        "id": 3040,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 4322,
        "src": "55:27:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/PriceOracle.sol",
        "file": "./PriceOracle.sol",
        "id": 3041,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 2240,
        "src": "83:27:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/buffer/contracts/Buffer.sol",
        "file": "@ensdomains/buffer/contracts/Buffer.sol",
        "id": 3042,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 4992,
        "src": "112:49:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "id": 3043,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 5713,
        "src": "162:60:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol",
        "file": "openzeppelin-solidity/contracts/access/Roles.sol",
        "id": 3044,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 11908,
        "src": "223:58:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@dev ShortNameClaims is a contract that permits people to register claims\n     for short (3-6 character) ENS names ahead of the auction process.\n *      Anyone with a DNS name registered before January 1, 2019, may use this\n     name to support a claim for a matching ENS name. In the event that\n     multiple claimants request the same name, the name will be assigned to\n     the oldest registered DNS name.\n *      Claims may be submitted by calling `submitExactClaim`,\n     `submitCombinedClaim` or `submitPrefixClaim` as appropriate.\n *      Claims require lodging a deposit equivalent to 365 days' registration of\n     the name. If the claim is approved, this deposit is spent, and the name\n     is registered for the claimant for 365 days. If the claim is declined,\n     the deposit will be returned.",
        "fullyImplemented": true,
        "id": 4014,
        "linearizedBaseContracts": [
          4014
        ],
        "name": "ShortNameClaims",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3047,
            "libraryName": {
              "contractScope": null,
              "id": 3045,
              "name": "Roles",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11907,
              "src": "1171:5:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Roles_$11907",
                "typeString": "library Roles"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1165:27:11",
            "typeName": {
              "contractScope": null,
              "id": 3046,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11820,
              "src": "1181:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11820_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            }
          },
          {
            "constant": true,
            "id": 3050,
            "name": "REGISTRATION_PERIOD",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1198:51:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3048,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1198:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3331353336303030",
              "id": 3049,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1241:8:11",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_31536000_by_1",
                "typeString": "int_const 31536000"
              },
              "value": "31536000"
            },
            "visibility": "public"
          },
          {
            "id": 3053,
            "libraryName": {
              "contractScope": null,
              "id": 3051,
              "name": "Buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4991,
              "src": "1262:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Buffer_$4991",
                "typeString": "library Buffer"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1256:31:11",
            "typeName": {
              "contractScope": null,
              "id": 3052,
              "name": "Buffer.buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4527,
              "src": "1273:13:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$4527_storage_ptr",
                "typeString": "struct Buffer.buffer"
              }
            }
          },
          {
            "id": 3056,
            "libraryName": {
              "contractScope": null,
              "id": 3054,
              "name": "BytesUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5712,
              "src": "1298:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesUtils_$5712",
                "typeString": "library BytesUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1292:27:11",
            "typeName": {
              "id": 3055,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1313:5:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "id": 3059,
            "libraryName": {
              "contractScope": null,
              "id": 3057,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4321,
              "src": "1330:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$4321",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1324:29:11",
            "typeName": {
              "id": 3058,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1346:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "canonicalName": "ShortNameClaims.Phase",
            "id": 3063,
            "members": [
              {
                "id": 3060,
                "name": "OPEN",
                "nodeType": "EnumValue",
                "src": "1380:4:11"
              },
              {
                "id": 3061,
                "name": "REVIEW",
                "nodeType": "EnumValue",
                "src": "1394:6:11"
              },
              {
                "id": 3062,
                "name": "FINAL",
                "nodeType": "EnumValue",
                "src": "1410:5:11"
              }
            ],
            "name": "Phase",
            "nodeType": "EnumDefinition",
            "src": "1359:62:11"
          },
          {
            "canonicalName": "ShortNameClaims.Status",
            "id": 3068,
            "members": [
              {
                "id": 3064,
                "name": "PENDING",
                "nodeType": "EnumValue",
                "src": "1449:7:11"
              },
              {
                "id": 3065,
                "name": "APPROVED",
                "nodeType": "EnumValue",
                "src": "1466:8:11"
              },
              {
                "id": 3066,
                "name": "DECLINED",
                "nodeType": "EnumValue",
                "src": "1484:8:11"
              },
              {
                "id": 3067,
                "name": "WITHDRAWN",
                "nodeType": "EnumValue",
                "src": "1502:9:11"
              }
            ],
            "name": "Status",
            "nodeType": "EnumDefinition",
            "src": "1427:90:11"
          },
          {
            "canonicalName": "ShortNameClaims.Claim",
            "id": 3077,
            "members": [
              {
                "constant": false,
                "id": 3070,
                "name": "labelHash",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1546:17:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 3069,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3072,
                "name": "claimant",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1573:16:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3071,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1573:7:11",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3074,
                "name": "paid",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1599:9:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3073,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1599:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3076,
                "name": "status",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1618:13:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_Status_$3068",
                  "typeString": "enum ShortNameClaims.Status"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 3075,
                  "name": "Status",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 3068,
                  "src": "1618:6:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3068",
                    "typeString": "enum ShortNameClaims.Status"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 4014,
            "src": "1523:115:11",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3079,
            "name": "owners",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1644:17:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11820_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3078,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11820,
              "src": "1644:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11820_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3081,
            "name": "ratifiers",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1667:20:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11820_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3080,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11820,
              "src": "1667:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11820_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3083,
            "name": "priceOracle",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1694:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_PriceOracle_$2239",
              "typeString": "contract PriceOracle"
            },
            "typeName": {
              "contractScope": null,
              "id": 3082,
              "name": "PriceOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2239,
              "src": "1694:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PriceOracle_$2239",
                "typeString": "contract PriceOracle"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3085,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1730:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_BaseRegistrar_$143",
              "typeString": "contract BaseRegistrar"
            },
            "typeName": {
              "contractScope": null,
              "id": 3084,
              "name": "BaseRegistrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 143,
              "src": "1730:13:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                "typeString": "contract BaseRegistrar"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3089,
            "name": "claims",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1766:37:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
              "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
            },
            "typeName": {
              "id": 3088,
              "keyType": {
                "id": 3086,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1774:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1766:23:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 3087,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 3077,
                "src": "1783:5:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                  "typeString": "struct ShortNameClaims.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3093,
            "name": "approvedNames",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1809:36:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 3092,
              "keyType": {
                "id": 3090,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1817:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1809:22:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 3091,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1826:4:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3095,
            "name": "pendingClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1851:25:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3094,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1851:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3097,
            "name": "unresolvedClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1882:28:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3096,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1882:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3099,
            "name": "phase",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1916:18:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Phase_$3063",
              "typeString": "enum ShortNameClaims.Phase"
            },
            "typeName": {
              "contractScope": null,
              "id": 3098,
              "name": "Phase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3063,
              "src": "1916:5:11",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Phase_$3063",
                "typeString": "enum ShortNameClaims.Phase"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3111,
            "name": "ClaimSubmitted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3101,
                  "indexed": false,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "1962:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3100,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3103,
                  "indexed": false,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "1978:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3102,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3105,
                  "indexed": false,
                  "name": "paid",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "1993:9:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3104,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1993:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3107,
                  "indexed": false,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "2004:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3106,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2004:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3109,
                  "indexed": false,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "2022:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3108,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2022:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1961:74:11"
            },
            "src": "1941:95:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3117,
            "name": "ClaimStatusChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3113,
                  "indexed": true,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3117,
                  "src": "2066:23:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3112,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2066:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3115,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 3117,
                  "src": "2091:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3068",
                    "typeString": "enum ShortNameClaims.Status"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3114,
                    "name": "Status",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3068,
                    "src": "2091:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2065:40:11"
            },
            "src": "2041:65:11"
          },
          {
            "body": {
              "id": 3152,
              "nodeType": "Block",
              "src": "2202:170:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3126,
                      "name": "priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3083,
                      "src": "2212:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2239",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3127,
                      "name": "_priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3119,
                      "src": "2226:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2239",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "src": "2212:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2239",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "id": 3129,
                  "nodeType": "ExpressionStatement",
                  "src": "2212:26:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3130,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3085,
                      "src": "2248:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3131,
                      "name": "_registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3121,
                      "src": "2260:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "src": "2248:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "id": 3133,
                  "nodeType": "ExpressionStatement",
                  "src": "2248:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3134,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3099,
                      "src": "2280:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3135,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3063,
                        "src": "2288:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "OPEN",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2288:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "2280:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3138,
                  "nodeType": "ExpressionStatement",
                  "src": "2280:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3142,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12917,
                          "src": "2320:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2320:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3139,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3079,
                        "src": "2309:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3141,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2309:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2309:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3145,
                  "nodeType": "ExpressionStatement",
                  "src": "2309:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3149,
                        "name": "_ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3123,
                        "src": "2355:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3146,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3081,
                        "src": "2341:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2341:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2341:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3151,
                  "nodeType": "ExpressionStatement",
                  "src": "2341:24:11"
                }
              ]
            },
            "documentation": null,
            "id": 3153,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3119,
                  "name": "_priceOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 3153,
                  "src": "2124:24:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PriceOracle_$2239",
                    "typeString": "contract PriceOracle"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3118,
                    "name": "PriceOracle",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2239,
                    "src": "2124:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2239",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3121,
                  "name": "_registrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 3153,
                  "src": "2150:24:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                    "typeString": "contract BaseRegistrar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3120,
                    "name": "BaseRegistrar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 143,
                    "src": "2150:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3123,
                  "name": "_ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3153,
                  "src": "2176:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3122,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2176:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2123:71:11"
            },
            "returnParameters": {
              "id": 3125,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2202:0:11"
            },
            "scope": 4014,
            "src": "2112:260:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3165,
              "nodeType": "Block",
              "src": "2399:86:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3158,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12917,
                              "src": "2428:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3159,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2428:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3156,
                            "name": "owners",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3079,
                            "src": "2417:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11820_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3157,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11906,
                          "src": "2417:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2417:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d75737420626520616e206f776e6572",
                        "id": 3161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2441:25:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9b8e6bbfdd4bed72ccc6ec74c79bd079b12f3e283f1a82da5a522ffd999fec2d",
                          "typeString": "literal_string \"Caller must be an owner\""
                        },
                        "value": "Caller must be an owner"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9b8e6bbfdd4bed72ccc6ec74c79bd079b12f3e283f1a82da5a522ffd999fec2d",
                          "typeString": "literal_string \"Caller must be an owner\""
                        }
                      ],
                      "id": 3155,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "2409:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2409:58:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3163,
                  "nodeType": "ExpressionStatement",
                  "src": "2409:58:11"
                },
                {
                  "id": 3164,
                  "nodeType": "PlaceholderStatement",
                  "src": "2477:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 3166,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3154,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2396:2:11"
            },
            "src": "2378:107:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3178,
              "nodeType": "Block",
              "src": "2515:91:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3171,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12917,
                              "src": "2547:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3172,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2547:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3169,
                            "name": "ratifiers",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3081,
                            "src": "2533:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11820_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3170,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11906,
                          "src": "2533:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2533:25:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d7573742062652061207261746966696572",
                        "id": 3174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2560:27:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d6957ad9c583f70c2eda523ca991dc398849403253aefbe176a02d923da5ad9c",
                          "typeString": "literal_string \"Caller must be a ratifier\""
                        },
                        "value": "Caller must be a ratifier"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d6957ad9c583f70c2eda523ca991dc398849403253aefbe176a02d923da5ad9c",
                          "typeString": "literal_string \"Caller must be a ratifier\""
                        }
                      ],
                      "id": 3168,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "2525:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2525:63:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3176,
                  "nodeType": "ExpressionStatement",
                  "src": "2525:63:11"
                },
                {
                  "id": 3177,
                  "nodeType": "PlaceholderStatement",
                  "src": "2598:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 3179,
            "name": "onlyRatifier",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3167,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2512:2:11"
            },
            "src": "2491:115:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3191,
              "nodeType": "Block",
              "src": "2638:72:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Phase_$3063",
                          "typeString": "enum ShortNameClaims.Phase"
                        },
                        "id": 3186,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3184,
                          "name": "phase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3099,
                          "src": "2656:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3063",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3185,
                          "name": "p",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3181,
                          "src": "2665:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3063",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "src": "2656:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420696e207265717569726564207068617365",
                        "id": 3187,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2668:23:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_723f2a764b7a7ec11c7daeff4e2814caaf39645c514090a79733a58fa4742cac",
                          "typeString": "literal_string \"Not in required phase\""
                        },
                        "value": "Not in required phase"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_723f2a764b7a7ec11c7daeff4e2814caaf39645c514090a79733a58fa4742cac",
                          "typeString": "literal_string \"Not in required phase\""
                        }
                      ],
                      "id": 3183,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "2648:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2648:44:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3189,
                  "nodeType": "ExpressionStatement",
                  "src": "2648:44:11"
                },
                {
                  "id": 3190,
                  "nodeType": "PlaceholderStatement",
                  "src": "2702:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 3192,
            "name": "inPhase",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3181,
                  "name": "p",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2629:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Phase_$3063",
                    "typeString": "enum ShortNameClaims.Phase"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3180,
                    "name": "Phase",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3063,
                    "src": "2629:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2628:9:11"
            },
            "src": "2612:98:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3205,
              "nodeType": "Block",
              "src": "2768:34:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3202,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3194,
                        "src": "2789:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3199,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3079,
                        "src": "2778:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3201,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2778:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2778:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3204,
                  "nodeType": "ExpressionStatement",
                  "src": "2778:17:11"
                }
              ]
            },
            "documentation": null,
            "id": 3206,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3197,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3196,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "2758:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2758:9:11"
              }
            ],
            "name": "addOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3194,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3206,
                  "src": "2734:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2734:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2733:15:11"
            },
            "returnParameters": {
              "id": 3198,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2768:0:11"
            },
            "scope": 4014,
            "src": "2716:86:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3219,
              "nodeType": "Block",
              "src": "2863:37:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3216,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3208,
                        "src": "2887:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3213,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3079,
                        "src": "2873:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3215,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11883,
                      "src": "2873:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2873:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3218,
                  "nodeType": "ExpressionStatement",
                  "src": "2873:20:11"
                }
              ]
            },
            "documentation": null,
            "id": 3220,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3211,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3210,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "2853:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2853:9:11"
              }
            ],
            "name": "removeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3208,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3220,
                  "src": "2829:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3207,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2829:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2828:15:11"
            },
            "returnParameters": {
              "id": 3212,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2863:0:11"
            },
            "scope": 4014,
            "src": "2808:92:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3233,
              "nodeType": "Block",
              "src": "2967:40:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3230,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3222,
                        "src": "2991:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3227,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3081,
                        "src": "2977:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3229,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2977:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2977:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3232,
                  "nodeType": "ExpressionStatement",
                  "src": "2977:23:11"
                }
              ]
            },
            "documentation": null,
            "id": 3234,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3225,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3224,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3179,
                  "src": "2954:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2954:12:11"
              }
            ],
            "name": "addRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3222,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3234,
                  "src": "2927:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3221,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2927:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2926:18:11"
            },
            "returnParameters": {
              "id": 3226,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2967:0:11"
            },
            "scope": 4014,
            "src": "2906:101:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3247,
              "nodeType": "Block",
              "src": "3077:43:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3244,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3236,
                        "src": "3104:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3081,
                        "src": "3087:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3243,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11883,
                      "src": "3087:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3087:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3246,
                  "nodeType": "ExpressionStatement",
                  "src": "3087:26:11"
                }
              ]
            },
            "documentation": null,
            "id": 3248,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3239,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3238,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3179,
                  "src": "3064:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3064:12:11"
              }
            ],
            "name": "removeRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3236,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3248,
                  "src": "3037:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3235,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3037:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3036:18:11"
            },
            "returnParameters": {
              "id": 3240,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3077:0:11"
            },
            "scope": 4014,
            "src": "3013:107:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3281,
              "nodeType": "Block",
              "src": "3607:133:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3266,
                                    "name": "claimed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3250,
                                    "src": "3667:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3265,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3661:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3267,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3661:14:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3264,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12911,
                              "src": "3651:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3268,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3651:25:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3270,
                                "name": "dnsname",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3252,
                                "src": "3688:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3269,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12911,
                              "src": "3678:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3678:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3272,
                            "name": "claimant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3254,
                            "src": "3698:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3275,
                                    "name": "email",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3256,
                                    "src": "3724:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3274,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3718:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3276,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3718:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3273,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12911,
                              "src": "3708:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3277,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3708:23:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3262,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12904,
                            "src": "3634:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3263,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3634:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3634:98:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3261,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12911,
                      "src": "3624:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3624:109:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3260,
                  "id": 3280,
                  "nodeType": "Return",
                  "src": "3617:116:11"
                }
              ]
            },
            "documentation": "@dev Computes the claim ID for a submitted claim, so it can be looked up\n     using `claims`.\n@param claimed The name being claimed (eg, 'foo')\n@param dnsname The DNS-encoded name supporting the claim (eg, 'foo.test')\n@param claimant The address making the claim.\n@return The claim ID.",
            "id": 3282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "computeClaimId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3257,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3250,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3494:21:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3249,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3494:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3252,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3517:20:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3251,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3254,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3539:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3253,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3539:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3256,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3557:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3255,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3557:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3493:84:11"
            },
            "returnParameters": {
              "id": 3260,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3259,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3598:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3258,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3598:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3597:9:11"
            },
            "scope": 4014,
            "src": "3470:270:11",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3296,
              "nodeType": "Block",
              "src": "3988:74:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3291,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3284,
                        "src": "4023:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3292,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4032:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 3293,
                        "name": "REGISTRATION_PERIOD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3050,
                        "src": "4035:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3289,
                        "name": "priceOracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3083,
                        "src": "4005:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PriceOracle_$2239",
                          "typeString": "contract PriceOracle"
                        }
                      },
                      "id": 3290,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2238,
                      "src": "4005:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (string memory,uint256,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 3294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4005:50:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3288,
                  "id": 3295,
                  "nodeType": "Return",
                  "src": "3998:57:11"
                }
              ]
            },
            "documentation": "@dev Returns the cost associated with placing a claim.\n@param claimed The name being claimed.\n@return The cost in wei for this claim.",
            "id": 3297,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getClaimCost",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3284,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3297,
                  "src": "3939:21:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3283,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3939:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3938:23:11"
            },
            "returnParameters": {
              "id": 3288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3287,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3297,
                  "src": "3982:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3982:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3981:6:11"
            },
            "scope": 4014,
            "src": "3917:145:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3320,
              "nodeType": "Block",
              "src": "4779:111:11",
              "statements": [
                {
                  "assignments": [
                    3307
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3307,
                      "name": "claimed",
                      "nodeType": "VariableDeclaration",
                      "scope": 3320,
                      "src": "4789:21:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3306,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4789:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3312,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3309,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3299,
                        "src": "4822:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3310,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4828:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 3308,
                      "name": "getLabel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3999,
                      "src": "4813:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                      }
                    },
                    "id": 3311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4813:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4789:41:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3314,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3307,
                        "src": "4852:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3315,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3299,
                        "src": "4861:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3316,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3301,
                        "src": "4867:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3317,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3303,
                        "src": "4877:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3313,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3933,
                      "src": "4840:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,address,string memory)"
                      }
                    },
                    "id": 3318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4840:43:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3319,
                  "nodeType": "ExpressionStatement",
                  "src": "4840:43:11"
                }
              ]
            },
            "documentation": "@dev Submits a claim for an exact match (eg, foo.test -> foo.eth).\n     Claimants must provide an amount of ether equal to 365 days'\n     registration cost; call `getClaimCost` to determine this amount.\n     Claimants should supply a little extra in case of variation in price;\n     any excess will be returned to the sender.\n@param name The DNS-encoded name of the domain being used to support the\n            claim.\n@param claimant The address of the claimant.\n@param email An email address for correspondence regarding the claim.",
            "id": 3321,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitExactClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3299,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "4706:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3298,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4706:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3301,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "4725:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3300,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4725:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3303,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "4743:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3302,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4743:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4705:58:11"
            },
            "returnParameters": {
              "id": 3305,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4779:0:11"
            },
            "scope": 4014,
            "src": "4680:210:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3385,
              "nodeType": "Block",
              "src": "5609:347:11",
              "statements": [
                {
                  "assignments": [
                    3331
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3331,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3385,
                      "src": "5619:23:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3330,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5619:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3338,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3334,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3323,
                            "src": "5660:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5666:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 3333,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3999,
                          "src": "5651:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                          }
                        },
                        "id": 3336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5651:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3332,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5645:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5645:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5619:50:11"
                },
                {
                  "assignments": [
                    3340
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3340,
                      "name": "secondLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3385,
                      "src": "5679:24:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3339,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5679:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3347,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3343,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3323,
                            "src": "5721:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "31",
                            "id": 3344,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5727:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 3342,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3999,
                          "src": "5712:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                          }
                        },
                        "id": 3345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5712:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5706:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5706:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5679:51:11"
                },
                {
                  "assignments": [
                    3351
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3351,
                      "name": "buf",
                      "nodeType": "VariableDeclaration",
                      "scope": 3385,
                      "src": "5740:24:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                        "typeString": "struct Buffer.buffer"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3350,
                        "name": "Buffer.buffer",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4527,
                        "src": "5740:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_storage_ptr",
                          "typeString": "struct Buffer.buffer"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3352,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5740:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3356,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3331,
                            "src": "5783:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5783:17:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3358,
                            "name": "secondLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3340,
                            "src": "5803:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5803:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5783:38:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3353,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3351,
                        "src": "5774:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3355,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4562,
                      "src": "5774:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4527_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$4527_memory_ptr_$bound_to$_t_struct$_buffer_$4527_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,uint256) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5774:48:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3362,
                  "nodeType": "ExpressionStatement",
                  "src": "5774:48:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3366,
                        "name": "firstLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3331,
                        "src": "5843:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3363,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3351,
                        "src": "5832:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3365,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4763,
                      "src": "5832:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4527_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4527_memory_ptr_$bound_to$_t_struct$_buffer_$4527_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5832:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3368,
                  "nodeType": "ExpressionStatement",
                  "src": "5832:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3372,
                        "name": "secondLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3340,
                        "src": "5875:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3369,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3351,
                        "src": "5864:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3371,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4763,
                      "src": "5864:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4527_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4527_memory_ptr_$bound_to$_t_struct$_buffer_$4527_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5864:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3374,
                  "nodeType": "ExpressionStatement",
                  "src": "5864:23:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3377,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3351,
                              "src": "5917:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                                "typeString": "struct Buffer.buffer memory"
                              }
                            },
                            "id": 3378,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "buf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4524,
                            "src": "5917:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3376,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5910:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5910:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3380,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3323,
                        "src": "5927:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3381,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3325,
                        "src": "5933:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3382,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3327,
                        "src": "5943:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3375,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3933,
                      "src": "5898:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,address,string memory)"
                      }
                    },
                    "id": 3383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5898:51:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3384,
                  "nodeType": "ExpressionStatement",
                  "src": "5898:51:11"
                }
              ]
            },
            "documentation": "@dev Submits a claim for match on name+tld (eg, foo.tv -> footv).\n     Claimants must provide an amount of ether equal to 365 days'\n     registration cost; call `getClaimCost` to determine this amount.\n     Claimants should supply a little extra in case of variation in price;\n     any excess will be returned to the sender.\n@param name The DNS-encoded name of the domain being used to support the\n            claim.\n@param claimant The address of the claimant.\n@param email An email address for correspondence regarding the claim.",
            "id": 3386,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitCombinedClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3323,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3386,
                  "src": "5536:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3322,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5536:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3325,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3386,
                  "src": "5555:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3324,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5555:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3327,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3386,
                  "src": "5573:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3326,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5573:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5535:58:11"
            },
            "returnParameters": {
              "id": 3329,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5609:0:11"
            },
            "scope": 4014,
            "src": "5507:449:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3433,
              "nodeType": "Block",
              "src": "6675:240:11",
              "statements": [
                {
                  "assignments": [
                    3396
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3396,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3433,
                      "src": "6685:23:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3395,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "6685:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3403,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3399,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3388,
                            "src": "6726:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3400,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6732:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 3398,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3999,
                          "src": "6717:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                          }
                        },
                        "id": 3401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6717:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3397,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6711:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6711:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6685:50:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3407,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3396,
                                "src": "6771:10:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3408,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6771:17:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 3409,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6791:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            },
                            "src": "6771:21:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "657468",
                                "id": 3412,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6800:5:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                },
                                "value": "eth"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                }
                              ],
                              "id": 3411,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6794:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3413,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6794:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3405,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3396,
                            "src": "6753:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "equals",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5257,
                          "src": "6753:17:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$bound_to$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256,bytes memory) pure returns (bool)"
                          }
                        },
                        "id": 3414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6753:54:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3404,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "6745:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6745:63:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3416,
                  "nodeType": "ExpressionStatement",
                  "src": "6745:63:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6858:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3425,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3422,
                                    "name": "firstLabel",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3396,
                                    "src": "6861:10:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 3423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "6861:17:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "33",
                                  "id": 3424,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6881:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_3_by_1",
                                    "typeString": "int_const 3"
                                  },
                                  "value": "3"
                                },
                                "src": "6861:21:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3419,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3396,
                                "src": "6837:10:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3420,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "substring",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5489,
                              "src": "6837:20:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
                              }
                            },
                            "id": 3426,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6837:46:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3418,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6830:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3427,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6830:54:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3428,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3388,
                        "src": "6886:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3429,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "6892:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3430,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3392,
                        "src": "6902:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3417,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3933,
                      "src": "6818:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,address,string memory)"
                      }
                    },
                    "id": 3431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6818:90:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3432,
                  "nodeType": "ExpressionStatement",
                  "src": "6818:90:11"
                }
              ]
            },
            "documentation": "@dev Submits a claim for prefix match (eg, fooeth.test -> foo.eth).\n     Claimants must provide an amount of ether equal to 365 days'\n     registration cost; call `getClaimCost` to determine this amount.\n     Claimants should supply a little extra in case of variation in price;\n     any excess will be returned to the sender.\n@param name The DNS-encoded name of the domain being used to support the\n            claim.\n@param claimant The address of the claimant.\n@param email An email address for correspondence regarding the claim.",
            "id": 3434,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitPrefixClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3393,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3388,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "6602:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3387,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6602:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3390,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "6621:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3389,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6621:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3392,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "6639:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3391,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6639:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6601:58:11"
            },
            "returnParameters": {
              "id": 3394,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6675:0:11"
            },
            "scope": 4014,
            "src": "6575:340:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3448,
              "nodeType": "Block",
              "src": "7087:37:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3443,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3099,
                      "src": "7097:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3444,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3063,
                        "src": "7105:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3445,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "REVIEW",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7105:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7097:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3447,
                  "nodeType": "ExpressionStatement",
                  "src": "7097:20:11"
                }
              ]
            },
            "documentation": "@dev Closes the claim submission period.\n     Callable only by the owner.",
            "id": 3449,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3437,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3436,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "7057:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7057:9:11"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3439,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "7075:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7075:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3441,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3438,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "7067:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7067:19:11"
              }
            ],
            "name": "closeClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7045:2:11"
            },
            "returnParameters": {
              "id": 3442,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7087:0:11"
            },
            "scope": 4014,
            "src": "7025:99:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3469,
              "nodeType": "Block",
              "src": "7374:133:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3459,
                          "name": "pendingClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3095,
                          "src": "7452:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7469:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7452:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3458,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "7444:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7444:27:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3463,
                  "nodeType": "ExpressionStatement",
                  "src": "7444:27:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3464,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3099,
                      "src": "7481:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3465,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3063,
                        "src": "7489:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3466,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "FINAL",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7489:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7481:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3468,
                  "nodeType": "ExpressionStatement",
                  "src": "7481:19:11"
                }
              ]
            },
            "documentation": "@dev Ratifies the current set of claims.\n     Ratification freezes the claims and their resolutions, and permits\n     them to be acted on.",
            "id": 3470,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3452,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3451,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3179,
                  "src": "7339:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7339:12:11"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3454,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "7360:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7360:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3456,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3453,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "7352:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7352:21:11"
              }
            ],
            "name": "ratifyClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3450,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7327:2:11"
            },
            "returnParameters": {
              "id": 3457,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7374:0:11"
            },
            "scope": 4014,
            "src": "7306:201:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3492,
              "nodeType": "Block",
              "src": "7720:92:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3480,
                          "name": "unresolvedClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3097,
                          "src": "7738:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7758:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7738:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3479,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "7730:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7730:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3484,
                  "nodeType": "ExpressionStatement",
                  "src": "7730:30:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3487,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12917,
                              "src": "7793:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7793:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 3486,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4013,
                          "src": "7783:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3489,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7783:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3485,
                      "name": "selfdestruct",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12925,
                      "src": "7770:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable)"
                      }
                    },
                    "id": 3490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7770:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3491,
                  "nodeType": "ExpressionStatement",
                  "src": "7770:35:11"
                }
              ]
            },
            "documentation": "@dev Cleans up the contract, after all claims are resolved.\n     Callable only by the owner, and only in final state.",
            "id": 3493,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3473,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3472,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "7689:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7689:9:11"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3475,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "7707:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7707:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3477,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3474,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "7699:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7699:20:11"
              }
            ],
            "name": "destroy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3471,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7677:2:11"
            },
            "returnParameters": {
              "id": 3478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7720:0:11"
            },
            "scope": 4014,
            "src": "7661:151:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3598,
              "nodeType": "Block",
              "src": "8221:983:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3515,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3507,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12917,
                                "src": "8296:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3508,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8296:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3505,
                              "name": "owners",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3079,
                              "src": "8285:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11820_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3506,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11906,
                            "src": "8285:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3509,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8285:22:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3512,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12917,
                                "src": "8325:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3513,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8325:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3510,
                              "name": "ratifiers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3081,
                              "src": "8311:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11820_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3511,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11906,
                            "src": "8311:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8311:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8285:51:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3504,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "8277:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8277:60:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3517,
                  "nodeType": "ExpressionStatement",
                  "src": "8277:60:11"
                },
                {
                  "assignments": [
                    3519
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3519,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3598,
                      "src": "8348:18:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3518,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3077,
                        "src": "8348:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3523,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3520,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3089,
                      "src": "8369:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3522,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3521,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3495,
                      "src": "8376:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8369:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8348:36:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3525,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3519,
                            "src": "8402:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3526,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3074,
                          "src": "8402:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8415:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8402:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8418:17:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        },
                        "value": "Claim not found"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        }
                      ],
                      "id": 3524,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "8394:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8394:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3531,
                  "nodeType": "ExpressionStatement",
                  "src": "8394:42:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3532,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3519,
                        "src": "8450:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3533,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "8450:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3534,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "8466:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8466:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "8450:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3544,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3519,
                          "src": "8634:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3076,
                        "src": "8634:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3546,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3068,
                          "src": "8650:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3547,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "APPROVED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8650:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "8634:31:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 3557,
                    "nodeType": "IfStatement",
                    "src": "8631:166:11",
                    "trueBody": {
                      "id": 3556,
                      "nodeType": "Block",
                      "src": "8667:130:11",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3549,
                                "name": "approvedNames",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3093,
                                "src": "8748:13:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                  "typeString": "mapping(bytes32 => bool)"
                                }
                              },
                              "id": 3552,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3550,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3519,
                                  "src": "8762:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3551,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "labelHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3070,
                                "src": "8762:15:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "8748:30:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3553,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8781:5:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "8748:38:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3555,
                          "nodeType": "ExpressionStatement",
                          "src": "8748:38:11"
                        }
                      ]
                    }
                  },
                  "id": 3558,
                  "nodeType": "IfStatement",
                  "src": "8447:350:11",
                  "trueBody": {
                    "id": 3543,
                    "nodeType": "Block",
                    "src": "8482:143:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3538,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "8569:15:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3537,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3095,
                            "src": "8569:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3539,
                        "nodeType": "ExpressionStatement",
                        "src": "8569:15:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3541,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "8596:18:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3540,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3097,
                            "src": "8596:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3542,
                        "nodeType": "ExpressionStatement",
                        "src": "8596:18:11"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 3559,
                    "name": "approved",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3497,
                    "src": "8918:8:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3576,
                  "nodeType": "IfStatement",
                  "src": "8915:125:11",
                  "trueBody": {
                    "id": 3575,
                    "nodeType": "Block",
                    "src": "8928:112:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3565,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "!",
                              "prefix": true,
                              "src": "8948:31:11",
                              "subExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3561,
                                  "name": "approvedNames",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3093,
                                  "src": "8949:13:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                    "typeString": "mapping(bytes32 => bool)"
                                  }
                                },
                                "id": 3564,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3562,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3519,
                                    "src": "8963:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3563,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3070,
                                  "src": "8963:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8949:30:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3560,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12920,
                              12921
                            ],
                            "referencedDeclaration": 12920,
                            "src": "8940:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 3566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8940:40:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3567,
                        "nodeType": "ExpressionStatement",
                        "src": "8940:40:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3568,
                              "name": "approvedNames",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3093,
                              "src": "8992:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                              }
                            },
                            "id": 3571,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3569,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3519,
                                "src": "9006:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3570,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "labelHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3070,
                              "src": "9006:15:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8992:30:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 3572,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9025:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "8992:37:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3574,
                        "nodeType": "ExpressionStatement",
                        "src": "8992:37:11"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    3578
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3578,
                      "name": "status",
                      "nodeType": "VariableDeclaration",
                      "scope": 3598,
                      "src": "9050:13:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3577,
                        "name": "Status",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3068,
                        "src": "9050:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3585,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "id": 3579,
                      "name": "approved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3497,
                      "src": "9066:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3582,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "9091:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3583,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "DECLINED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9091:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "id": 3584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "9066:40:11",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3580,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "9075:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9075:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9050:56:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3586,
                          "name": "claims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3089,
                          "src": "9116:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                            "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                          }
                        },
                        "id": 3588,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3587,
                          "name": "claimId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3495,
                          "src": "9123:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9116:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage",
                          "typeString": "struct ShortNameClaims.Claim storage ref"
                        }
                      },
                      "id": 3589,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "9116:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3590,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3578,
                      "src": "9141:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "9116:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "id": 3592,
                  "nodeType": "ExpressionStatement",
                  "src": "9116:31:11"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3594,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3495,
                        "src": "9181:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3595,
                        "name": "status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3578,
                        "src": "9190:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3593,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3117,
                      "src": "9162:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3068_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9162:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3597,
                  "nodeType": "EmitStatement",
                  "src": "9157:40:11"
                }
              ]
            },
            "documentation": "@dev Sets the status of a claim to either APPROVED or DECLINED.\n     Callable only during the review phase, and only by the owner or\n     ratifier.\n@param claimId The claim to set the status of.\n@param approved True if the claim is approved, false if it is declined.",
            "id": 3599,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3500,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "8207:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "8207:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3502,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3499,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "8199:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8199:21:11"
              }
            ],
            "name": "setClaimStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3498,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3495,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3599,
                  "src": "8160:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3494,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8160:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3497,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3599,
                  "src": "8177:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3496,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8177:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8159:32:11"
            },
            "returnParameters": {
              "id": 3503,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8221:0:11"
            },
            "scope": 4014,
            "src": "8136:1068:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3648,
              "nodeType": "Block",
              "src": "9559:226:11",
              "statements": [
                {
                  "body": {
                    "id": 3626,
                    "nodeType": "Block",
                    "src": "9611:58:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3620,
                                "name": "approved",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3602,
                                "src": "9640:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3622,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3621,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3609,
                                "src": "9649:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9640:11:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 3623,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9653:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3619,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3599,
                            "src": "9625:14:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3624,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9625:33:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3625,
                        "nodeType": "ExpressionStatement",
                        "src": "9625:33:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3615,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3612,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3609,
                      "src": "9585:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3613,
                        "name": "approved",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3602,
                        "src": "9589:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3614,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9589:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9585:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3627,
                  "initializationExpression": {
                    "assignments": [
                      3609
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3609,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3627,
                        "src": "9573:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3608,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9573:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3611,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9582:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9573:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9606:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3616,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3609,
                        "src": "9606:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3618,
                    "nodeType": "ExpressionStatement",
                    "src": "9606:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "9569:100:11"
                },
                {
                  "body": {
                    "id": 3646,
                    "nodeType": "Block",
                    "src": "9720:59:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3640,
                                "name": "declined",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3605,
                                "src": "9749:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3642,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3641,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3629,
                                "src": "9758:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9749:11:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9762:5:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3639,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3599,
                            "src": "9734:14:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9734:34:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3645,
                        "nodeType": "ExpressionStatement",
                        "src": "9734:34:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3632,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3629,
                      "src": "9694:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3633,
                        "name": "declined",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3605,
                        "src": "9698:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3634,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9698:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9694:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3647,
                  "initializationExpression": {
                    "assignments": [
                      3629
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3629,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3647,
                        "src": "9682:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3628,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9682:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3631,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3630,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9691:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9682:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3637,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9715:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3636,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3629,
                        "src": "9715:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3638,
                    "nodeType": "ExpressionStatement",
                    "src": "9715:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "9678:101:11"
                }
              ]
            },
            "documentation": "@dev Sets the status of multiple claims. Callable only during the review\n     phase, and only by the owner or ratifier.\n@param approved A list of approved claim IDs.\n@param declined A list of declined claim IDs.",
            "id": 3649,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setClaimStatuses",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3602,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "9492:27:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3600,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9492:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3601,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9492:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3605,
                  "name": "declined",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "9521:27:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3603,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9521:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3604,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9521:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9491:58:11"
            },
            "returnParameters": {
              "id": 3607,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9559:0:11"
            },
            "scope": 4014,
            "src": "9466:319:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3730,
              "nodeType": "Block",
              "src": "10077:667:11",
              "statements": [
                {
                  "assignments": [
                    3659
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3659,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3730,
                      "src": "10087:18:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3658,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3077,
                        "src": "10087:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3663,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3660,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3089,
                      "src": "10108:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3662,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3661,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3651,
                      "src": "10115:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10108:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10087:36:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3668,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3665,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3659,
                            "src": "10141:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3666,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3074,
                          "src": "10141:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10154:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10141:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10157:17:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        },
                        "value": "Claim not found"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        }
                      ],
                      "id": 3664,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "10133:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10133:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3671,
                  "nodeType": "ExpressionStatement",
                  "src": "10133:42:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3672,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3659,
                        "src": "10189:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3673,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "10189:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3674,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "10205:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3675,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10205:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "10189:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3700,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3659,
                          "src": "10400:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3701,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3076,
                        "src": "10400:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3702,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3068,
                          "src": "10416:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "DECLINED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10416:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "10400:31:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 3719,
                      "nodeType": "Block",
                      "src": "10510:167:11",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 3716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10660:5:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 3715,
                              "name": "assert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12906,
                              "src": "10653:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                "typeString": "function (bool) pure"
                              }
                            },
                            "id": 3717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10653:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3718,
                          "nodeType": "ExpressionStatement",
                          "src": "10653:13:11"
                        }
                      ]
                    },
                    "id": 3720,
                    "nodeType": "IfStatement",
                    "src": "10397:280:11",
                    "trueBody": {
                      "id": 3714,
                      "nodeType": "Block",
                      "src": "10433:71:11",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3710,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3659,
                                  "src": "10482:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3711,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "paid",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3074,
                                "src": "10482:10:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3706,
                                      "name": "claim",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3659,
                                      "src": "10457:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                        "typeString": "struct ShortNameClaims.Claim memory"
                                      }
                                    },
                                    "id": 3707,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "claimant",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3072,
                                    "src": "10457:14:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 3705,
                                  "name": "toPayable",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4013,
                                  "src": "10447:9:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                    "typeString": "function (address) pure returns (address payable)"
                                  }
                                },
                                "id": 3708,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10447:25:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              },
                              "id": 3709,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10447:34:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                "typeString": "function (uint256)"
                              }
                            },
                            "id": 3712,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10447:46:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3713,
                          "nodeType": "ExpressionStatement",
                          "src": "10447:46:11"
                        }
                      ]
                    }
                  },
                  "id": 3721,
                  "nodeType": "IfStatement",
                  "src": "10186:491:11",
                  "trueBody": {
                    "id": 3699,
                    "nodeType": "Block",
                    "src": "10222:169:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3681,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3659,
                                    "src": "10263:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3682,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3070,
                                  "src": "10263:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 3680,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "10255:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint256"
                              },
                              "id": 3683,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10255:24:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3684,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3659,
                                "src": "10281:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3685,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "claimant",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3072,
                              "src": "10281:14:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3686,
                              "name": "REGISTRATION_PERIOD",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3050,
                              "src": "10297:19:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3677,
                              "name": "registrar",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3085,
                              "src": "10236:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                                "typeString": "contract BaseRegistrar"
                              }
                            },
                            "id": 3679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "register",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 126,
                            "src": "10236:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,address,uint256) external returns (uint256)"
                            }
                          },
                          "id": 3687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10236:81:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3688,
                        "nodeType": "ExpressionStatement",
                        "src": "10236:81:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3695,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3659,
                                "src": "10369:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3696,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "paid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3074,
                              "src": "10369:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3690,
                                      "name": "registrar",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3085,
                                      "src": "10341:9:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                                        "typeString": "contract BaseRegistrar"
                                      }
                                    },
                                    "id": 3691,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "owner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 12130,
                                    "src": "10341:15:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                      "typeString": "function () view external returns (address)"
                                    }
                                  },
                                  "id": 3692,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10341:17:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 3689,
                                "name": "toPayable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4013,
                                "src": "10331:9:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                  "typeString": "function (address) pure returns (address payable)"
                                }
                              },
                              "id": 3693,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10331:28:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3694,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10331:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10331:49:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3698,
                        "nodeType": "ExpressionStatement",
                        "src": "10331:49:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "--",
                    "prefix": false,
                    "src": "10687:18:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3722,
                      "name": "unresolvedClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3097,
                      "src": "10687:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3724,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3728,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "10715:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3725,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "10722:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3727,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3726,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3651,
                        "src": "10729:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10722:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3729,
                  "nodeType": "ExpressionStatement",
                  "src": "10715:22:11"
                }
              ]
            },
            "documentation": "@dev Resolves a claim. Callable by anyone, only in the final phase.\n     Resolving a claim either registers the name or refunds the claimant.\n@param claimId The claim ID to resolve.",
            "id": 3731,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3654,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "10064:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "10064:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3656,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3653,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "10056:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10056:20:11"
              }
            ],
            "name": "resolveClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3651,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "10032:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3650,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10032:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10031:17:11"
            },
            "returnParameters": {
              "id": 3657,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10077:0:11"
            },
            "scope": 4014,
            "src": "10010:734:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3756,
              "nodeType": "Block",
              "src": "10965:108:11",
              "statements": [
                {
                  "body": {
                    "id": 3754,
                    "nodeType": "Block",
                    "src": "11017:50:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3749,
                                "name": "claimIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3734,
                                "src": "11044:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3751,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3750,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3738,
                                "src": "11053:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11044:11:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3748,
                            "name": "resolveClaim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3731,
                            "src": "11031:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 3752,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11031:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3753,
                        "nodeType": "ExpressionStatement",
                        "src": "11031:25:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3744,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3741,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3738,
                      "src": "10991:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3742,
                        "name": "claimIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3734,
                        "src": "10995:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3743,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10995:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10991:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3755,
                  "initializationExpression": {
                    "assignments": [
                      3738
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3738,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3755,
                        "src": "10979:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3737,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10979:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3740,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10988:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10979:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "11012:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3745,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3738,
                        "src": "11012:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3747,
                    "nodeType": "ExpressionStatement",
                    "src": "11012:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "10975:92:11"
                }
              ]
            },
            "documentation": "@dev Resolves multiple claims. Callable by anyone, only in the final phase.\n@param claimIds A list of claim IDs to resolve.",
            "id": 3757,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "resolveClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3735,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3734,
                  "name": "claimIds",
                  "nodeType": "VariableDeclaration",
                  "scope": 3757,
                  "src": "10927:27:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3732,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10927:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3733,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10927:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10926:29:11"
            },
            "returnParameters": {
              "id": 3736,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10965:0:11"
            },
            "scope": 4014,
            "src": "10904:169:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3810,
              "nodeType": "Block",
              "src": "11311:421:11",
              "statements": [
                {
                  "assignments": [
                    3763
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3763,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3810,
                      "src": "11321:18:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3762,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3077,
                        "src": "11321:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3767,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3764,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3089,
                      "src": "11342:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3766,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3765,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3759,
                      "src": "11349:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11342:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11321:36:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3769,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12917,
                            "src": "11413:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11413:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3771,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3763,
                            "src": "11427:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3772,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "claimant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3072,
                          "src": "11427:14:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11413:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3768,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "11405:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11405:37:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3775,
                  "nodeType": "ExpressionStatement",
                  "src": "11405:37:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3776,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3763,
                        "src": "11456:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3777,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "11456:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3778,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "11472:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11472:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "11456:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 3788,
                    "nodeType": "Block",
                    "src": "11534:43:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11548:18:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3785,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3097,
                            "src": "11548:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3787,
                        "nodeType": "ExpressionStatement",
                        "src": "11548:18:11"
                      }
                    ]
                  },
                  "id": 3789,
                  "nodeType": "IfStatement",
                  "src": "11453:124:11",
                  "trueBody": {
                    "id": 3784,
                    "nodeType": "Block",
                    "src": "11488:40:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3782,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11502:15:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3781,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3095,
                            "src": "11502:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3783,
                        "nodeType": "ExpressionStatement",
                        "src": "11502:15:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3795,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3763,
                          "src": "11622:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3796,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "paid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3074,
                        "src": "11622:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3791,
                              "name": "claim",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3763,
                              "src": "11597:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                "typeString": "struct ShortNameClaims.Claim memory"
                              }
                            },
                            "id": 3792,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "claimant",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3072,
                            "src": "11597:14:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 3790,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4013,
                          "src": "11587:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11587:25:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 3794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11587:34:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3797,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11587:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3798,
                  "nodeType": "ExpressionStatement",
                  "src": "11587:46:11"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3800,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3759,
                        "src": "11667:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3801,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3068,
                          "src": "11676:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3802,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "WITHDRAWN",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11676:16:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3799,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3117,
                      "src": "11648:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3068_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11648:45:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3804,
                  "nodeType": "EmitStatement",
                  "src": "11643:50:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "11703:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3805,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "11710:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3807,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3806,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3759,
                        "src": "11717:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11710:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3809,
                  "nodeType": "ExpressionStatement",
                  "src": "11703:22:11"
                }
              ]
            },
            "documentation": "@dev Withdraws a claim and refunds the claimant.\n     Callable only by the claimant, at any time.\n@param claimId The ID of the claim to withdraw.",
            "id": 3811,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "withdrawClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3759,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3811,
                  "src": "11285:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3758,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11285:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11284:17:11"
            },
            "returnParameters": {
              "id": 3761,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11311:0:11"
            },
            "scope": 4014,
            "src": "11262:470:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3932,
              "nodeType": "Block",
              "src": "11869:772:11",
              "statements": [
                {
                  "assignments": [
                    3827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3827,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 3932,
                      "src": "11879:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3826,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11879:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3831,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3828,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "11890:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "id": 3829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "strlen",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4320,
                      "src": "11890:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (uint256)"
                      }
                    },
                    "id": 3830,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11890:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11879:27:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3839,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3833,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3827,
                            "src": "11924:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "33",
                            "id": 3834,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11931:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          },
                          "src": "11924:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3836,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3827,
                            "src": "11936:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "36",
                            "id": 3837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11943:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          },
                          "src": "11936:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11924:20:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "11916:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11916:29:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3841,
                  "nodeType": "ExpressionStatement",
                  "src": "11916:29:11"
                },
                {
                  "assignments": [
                    3843
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3843,
                      "name": "claimId",
                      "nodeType": "VariableDeclaration",
                      "scope": 3932,
                      "src": "11956:15:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3842,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11956:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3850,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3845,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "11989:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3846,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3815,
                        "src": "11998:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3847,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3817,
                        "src": "12004:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3848,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3819,
                        "src": "12014:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3844,
                      "name": "computeClaimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3282,
                      "src": "11974:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory,bytes memory,address,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11974:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11956:64:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3852,
                              "name": "claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3089,
                              "src": "12038:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                              }
                            },
                            "id": 3854,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3853,
                              "name": "claimId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3843,
                              "src": "12045:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12038:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_storage",
                              "typeString": "struct ShortNameClaims.Claim storage ref"
                            }
                          },
                          "id": 3855,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3074,
                          "src": "12038:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12062:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12038:25:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d20616c7265616479207375626d6974746564",
                        "id": 3858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12065:25:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_591d59dbdd5d56f533893d647aa66033850e014e63ebafafca510867c25a75f0",
                          "typeString": "literal_string \"Claim already submitted\""
                        },
                        "value": "Claim already submitted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_591d59dbdd5d56f533893d647aa66033850e014e63ebafafca510867c25a75f0",
                          "typeString": "literal_string \"Claim already submitted\""
                        }
                      ],
                      "id": 3851,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "12030:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12030:61:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3860,
                  "nodeType": "ExpressionStatement",
                  "src": "12030:61:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3864,
                                    "name": "name",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3815,
                                    "src": "12189:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 3865,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12195:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 3863,
                                  "name": "getLabel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3999,
                                  "src": "12180:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                                  }
                                },
                                "id": 3866,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12180:17:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 3862,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12174:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3867,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12174:24:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12174:31:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12209:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12174:36:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d65206d757374206265206120324c44",
                        "id": 3871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12212:20:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6ed7f5d41b4a8a6806d1f34688c22dfc0ac87b958b392074b05577432bd90d7d",
                          "typeString": "literal_string \"Name must be a 2LD\""
                        },
                        "value": "Name must be a 2LD"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6ed7f5d41b4a8a6806d1f34688c22dfc0ac87b958b392074b05577432bd90d7d",
                          "typeString": "literal_string \"Name must be a 2LD\""
                        }
                      ],
                      "id": 3861,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "12166:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3872,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12166:67:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3873,
                  "nodeType": "ExpressionStatement",
                  "src": "12166:67:11"
                },
                {
                  "assignments": [
                    3875
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3875,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 3932,
                      "src": "12244:10:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3874,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12244:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3879,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3877,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "12270:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3876,
                      "name": "getClaimCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3297,
                      "src": "12257:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) view returns (uint256)"
                      }
                    },
                    "id": 3878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12257:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12244:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3884,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3881,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12917,
                            "src": "12296:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3882,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12296:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3883,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3875,
                          "src": "12309:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12296:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e73756666696369656e742066756e647320666f72207265736572766174696f6e",
                        "id": 3885,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12316:36:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8daa7cdbe4484bc420fabe6749f95ade6afb578aa8d3654b1f99b8211c12d81f",
                          "typeString": "literal_string \"Insufficient funds for reservation\""
                        },
                        "value": "Insufficient funds for reservation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8daa7cdbe4484bc420fabe6749f95ade6afb578aa8d3654b1f99b8211c12d81f",
                          "typeString": "literal_string \"Insufficient funds for reservation\""
                        }
                      ],
                      "id": 3880,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "12288:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3886,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12288:65:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3887,
                  "nodeType": "ExpressionStatement",
                  "src": "12288:65:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3888,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12917,
                        "src": "12366:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12366:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3890,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3875,
                      "src": "12378:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12366:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3904,
                  "nodeType": "IfStatement",
                  "src": "12363:85:11",
                  "trueBody": {
                    "id": 3903,
                    "nodeType": "Block",
                    "src": "12385:63:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3900,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3897,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12917,
                                  "src": "12419:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3898,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "12419:9:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3899,
                                "name": "price",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3875,
                                "src": "12431:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12419:17:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3892,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12917,
                                "src": "12399:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "12399:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3896,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12399:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3901,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12399:38:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3902,
                        "nodeType": "ExpressionStatement",
                        "src": "12399:38:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3919,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3905,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "12458:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3907,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3906,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3843,
                        "src": "12465:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12458:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3911,
                                  "name": "claimed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3813,
                                  "src": "12498:7:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 3910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12492:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 3912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12492:14:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 3909,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12911,
                            "src": "12482:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 3913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12482:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3914,
                          "name": "claimant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3817,
                          "src": "12509:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3915,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3875,
                          "src": "12519:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3916,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3068,
                            "src": "12526:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                              "typeString": "type(enum ShortNameClaims.Status)"
                            }
                          },
                          "id": 3917,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "PENDING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12526:14:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$3068",
                            "typeString": "enum ShortNameClaims.Status"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_enum$_Status_$3068",
                            "typeString": "enum ShortNameClaims.Status"
                          }
                        ],
                        "id": 3908,
                        "name": "Claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3077,
                        "src": "12476:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Claim_$3077_storage_ptr_$",
                          "typeString": "type(struct ShortNameClaims.Claim storage pointer)"
                        }
                      },
                      "id": 3918,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12476:65:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory",
                        "typeString": "struct ShortNameClaims.Claim memory"
                      }
                    },
                    "src": "12458:83:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "id": 3920,
                  "nodeType": "ExpressionStatement",
                  "src": "12458:83:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "12551:15:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3921,
                      "name": "pendingClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3095,
                      "src": "12551:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3923,
                  "nodeType": "ExpressionStatement",
                  "src": "12551:15:11"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3925,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "12596:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3926,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3815,
                        "src": "12605:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3927,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3875,
                        "src": "12611:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3928,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3817,
                        "src": "12618:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3929,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3819,
                        "src": "12628:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3924,
                      "name": "ClaimSubmitted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3111,
                      "src": "12581:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,uint256,address,string memory)"
                      }
                    },
                    "id": 3930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12581:53:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3931,
                  "nodeType": "EmitStatement",
                  "src": "12576:58:11"
                }
              ]
            },
            "documentation": null,
            "id": 3933,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3822,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "11857:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "11857:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3824,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3821,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "11849:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11849:19:11"
              }
            ],
            "name": "handleClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3820,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3813,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11759:21:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3812,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11759:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3815,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11782:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3814,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "11782:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3817,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11801:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3816,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11801:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3819,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11819:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3818,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11819:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11758:81:11"
            },
            "returnParameters": {
              "id": 3825,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11869:0:11"
            },
            "scope": 4014,
            "src": "11738:903:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3998,
              "nodeType": "Block",
              "src": "12731:405:11",
              "statements": [
                {
                  "assignments": [
                    3943
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3943,
                      "name": "offset",
                      "nodeType": "VariableDeclaration",
                      "scope": 3998,
                      "src": "12780:11:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3942,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12780:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3945,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 3944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "12794:1:11",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12780:15:11"
                },
                {
                  "body": {
                    "id": 3972,
                    "nodeType": "Block",
                    "src": "12835:110:11",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3956,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3943,
                            "src": "12852:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3957,
                              "name": "name",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3935,
                              "src": "12862:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 3958,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12862:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12852:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 3962,
                        "nodeType": "IfStatement",
                        "src": "12849:35:11",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 3960,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12882:2:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          },
                          "functionReturnParameters": 3941,
                          "id": 3961,
                          "nodeType": "Return",
                          "src": "12875:9:11"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3963,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3943,
                            "src": "12898:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 3969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3966,
                                  "name": "offset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3943,
                                  "src": "12923:6:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3964,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3935,
                                  "src": "12908:4:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "id": 3965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "readUint8",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 5298,
                                "src": "12908:14:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes memory,uint256) pure returns (uint8)"
                                }
                              },
                              "id": 3967,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12908:22:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 3968,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12933:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "12908:26:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "12898:36:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3971,
                        "nodeType": "ExpressionStatement",
                        "src": "12898:36:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3952,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3950,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3947,
                      "src": "12821:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3951,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3937,
                      "src": "12825:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12821:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3973,
                  "initializationExpression": {
                    "assignments": [
                      3947
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3947,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3973,
                        "src": "12809:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3946,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12809:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3949,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12818:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12809:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12830:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3953,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3947,
                        "src": "12830:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3955,
                    "nodeType": "ExpressionStatement",
                    "src": "12830:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "12805:140:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3974,
                      "name": "offset",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3943,
                      "src": "12998:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3975,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3935,
                        "src": "13008:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 3976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13008:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12998:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3980,
                  "nodeType": "IfStatement",
                  "src": "12995:35:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "",
                      "id": 3978,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13028:2:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                        "typeString": "literal_string \"\""
                      },
                      "value": ""
                    },
                    "functionReturnParameters": 3941,
                    "id": 3979,
                    "nodeType": "Return",
                    "src": "13021:9:11"
                  }
                },
                {
                  "assignments": [
                    3982
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3982,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 3998,
                      "src": "13040:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3981,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13040:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3987,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3985,
                        "name": "offset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3943,
                        "src": "13066:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3983,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3935,
                        "src": "13051:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 3984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5298,
                      "src": "13051:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
                        "typeString": "function (bytes memory,uint256) pure returns (uint8)"
                      }
                    },
                    "id": 3986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13051:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13040:33:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3993,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3991,
                              "name": "offset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3943,
                              "src": "13112:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 3992,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13121:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "13112:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3994,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3982,
                            "src": "13124:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3989,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3935,
                            "src": "13097:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "substring",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5489,
                          "src": "13097:14:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
                          }
                        },
                        "id": 3995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13097:31:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13090:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": "string"
                    },
                    "id": 3996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13090:39:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 3941,
                  "id": 3997,
                  "nodeType": "Return",
                  "src": "13083:46:11"
                }
              ]
            },
            "documentation": null,
            "id": 3999,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLabel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3935,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3999,
                  "src": "12665:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3934,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "12665:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3937,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 3999,
                  "src": "12684:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3936,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12684:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12664:29:11"
            },
            "returnParameters": {
              "id": 3941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3940,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3999,
                  "src": "12716:13:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3939,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "12716:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12715:15:11"
            },
            "scope": 4014,
            "src": "12647:489:11",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4012,
              "nodeType": "Block",
              "src": "13214:46:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4008,
                            "name": "addr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4001,
                            "src": "13247:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 4007,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13239:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": "uint160"
                        },
                        "id": 4009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13239:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 4006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13231:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 4010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13231:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 4005,
                  "id": 4011,
                  "nodeType": "Return",
                  "src": "13224:29:11"
                }
              ]
            },
            "documentation": null,
            "id": 4013,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toPayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4001,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4013,
                  "src": "13161:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4000,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13161:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13160:14:11"
            },
            "returnParameters": {
              "id": 4005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4004,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4013,
                  "src": "13197:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 4003,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13197:15:11",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13196:17:11"
            },
            "scope": 4014,
            "src": "13142:118:11",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4015,
        "src": "1134:12128:11"
      }
    ],
    "src": "0:13263:11"
  },
  "legacyAST": {
    "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol",
    "exportedSymbols": {
      "ShortNameClaims": [
        4014
      ]
    },
    "id": 4015,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3038,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:11"
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/BaseRegistrar.sol",
        "file": "./BaseRegistrar.sol",
        "id": 3039,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 144,
        "src": "25:29:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/StringUtils.sol",
        "file": "./StringUtils.sol",
        "id": 3040,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 4322,
        "src": "55:27:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/PriceOracle.sol",
        "file": "./PriceOracle.sol",
        "id": 3041,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 2240,
        "src": "83:27:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/buffer/contracts/Buffer.sol",
        "file": "@ensdomains/buffer/contracts/Buffer.sol",
        "id": 3042,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 4992,
        "src": "112:49:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "id": 3043,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 5713,
        "src": "162:60:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol",
        "file": "openzeppelin-solidity/contracts/access/Roles.sol",
        "id": 3044,
        "nodeType": "ImportDirective",
        "scope": 4015,
        "sourceUnit": 11908,
        "src": "223:58:11",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@dev ShortNameClaims is a contract that permits people to register claims\n     for short (3-6 character) ENS names ahead of the auction process.\n *      Anyone with a DNS name registered before January 1, 2019, may use this\n     name to support a claim for a matching ENS name. In the event that\n     multiple claimants request the same name, the name will be assigned to\n     the oldest registered DNS name.\n *      Claims may be submitted by calling `submitExactClaim`,\n     `submitCombinedClaim` or `submitPrefixClaim` as appropriate.\n *      Claims require lodging a deposit equivalent to 365 days' registration of\n     the name. If the claim is approved, this deposit is spent, and the name\n     is registered for the claimant for 365 days. If the claim is declined,\n     the deposit will be returned.",
        "fullyImplemented": true,
        "id": 4014,
        "linearizedBaseContracts": [
          4014
        ],
        "name": "ShortNameClaims",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3047,
            "libraryName": {
              "contractScope": null,
              "id": 3045,
              "name": "Roles",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11907,
              "src": "1171:5:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Roles_$11907",
                "typeString": "library Roles"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1165:27:11",
            "typeName": {
              "contractScope": null,
              "id": 3046,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11820,
              "src": "1181:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11820_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            }
          },
          {
            "constant": true,
            "id": 3050,
            "name": "REGISTRATION_PERIOD",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1198:51:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3048,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1198:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3331353336303030",
              "id": 3049,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1241:8:11",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_31536000_by_1",
                "typeString": "int_const 31536000"
              },
              "value": "31536000"
            },
            "visibility": "public"
          },
          {
            "id": 3053,
            "libraryName": {
              "contractScope": null,
              "id": 3051,
              "name": "Buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4991,
              "src": "1262:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Buffer_$4991",
                "typeString": "library Buffer"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1256:31:11",
            "typeName": {
              "contractScope": null,
              "id": 3052,
              "name": "Buffer.buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4527,
              "src": "1273:13:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$4527_storage_ptr",
                "typeString": "struct Buffer.buffer"
              }
            }
          },
          {
            "id": 3056,
            "libraryName": {
              "contractScope": null,
              "id": 3054,
              "name": "BytesUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5712,
              "src": "1298:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesUtils_$5712",
                "typeString": "library BytesUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1292:27:11",
            "typeName": {
              "id": 3055,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1313:5:11",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "id": 3059,
            "libraryName": {
              "contractScope": null,
              "id": 3057,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4321,
              "src": "1330:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$4321",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1324:29:11",
            "typeName": {
              "id": 3058,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1346:6:11",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "canonicalName": "ShortNameClaims.Phase",
            "id": 3063,
            "members": [
              {
                "id": 3060,
                "name": "OPEN",
                "nodeType": "EnumValue",
                "src": "1380:4:11"
              },
              {
                "id": 3061,
                "name": "REVIEW",
                "nodeType": "EnumValue",
                "src": "1394:6:11"
              },
              {
                "id": 3062,
                "name": "FINAL",
                "nodeType": "EnumValue",
                "src": "1410:5:11"
              }
            ],
            "name": "Phase",
            "nodeType": "EnumDefinition",
            "src": "1359:62:11"
          },
          {
            "canonicalName": "ShortNameClaims.Status",
            "id": 3068,
            "members": [
              {
                "id": 3064,
                "name": "PENDING",
                "nodeType": "EnumValue",
                "src": "1449:7:11"
              },
              {
                "id": 3065,
                "name": "APPROVED",
                "nodeType": "EnumValue",
                "src": "1466:8:11"
              },
              {
                "id": 3066,
                "name": "DECLINED",
                "nodeType": "EnumValue",
                "src": "1484:8:11"
              },
              {
                "id": 3067,
                "name": "WITHDRAWN",
                "nodeType": "EnumValue",
                "src": "1502:9:11"
              }
            ],
            "name": "Status",
            "nodeType": "EnumDefinition",
            "src": "1427:90:11"
          },
          {
            "canonicalName": "ShortNameClaims.Claim",
            "id": 3077,
            "members": [
              {
                "constant": false,
                "id": 3070,
                "name": "labelHash",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1546:17:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 3069,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3072,
                "name": "claimant",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1573:16:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3071,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1573:7:11",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3074,
                "name": "paid",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1599:9:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3073,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1599:4:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3076,
                "name": "status",
                "nodeType": "VariableDeclaration",
                "scope": 3077,
                "src": "1618:13:11",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_Status_$3068",
                  "typeString": "enum ShortNameClaims.Status"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 3075,
                  "name": "Status",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 3068,
                  "src": "1618:6:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3068",
                    "typeString": "enum ShortNameClaims.Status"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 4014,
            "src": "1523:115:11",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3079,
            "name": "owners",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1644:17:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11820_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3078,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11820,
              "src": "1644:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11820_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3081,
            "name": "ratifiers",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1667:20:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11820_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3080,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11820,
              "src": "1667:10:11",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11820_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3083,
            "name": "priceOracle",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1694:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_PriceOracle_$2239",
              "typeString": "contract PriceOracle"
            },
            "typeName": {
              "contractScope": null,
              "id": 3082,
              "name": "PriceOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2239,
              "src": "1694:11:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PriceOracle_$2239",
                "typeString": "contract PriceOracle"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3085,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1730:30:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_BaseRegistrar_$143",
              "typeString": "contract BaseRegistrar"
            },
            "typeName": {
              "contractScope": null,
              "id": 3084,
              "name": "BaseRegistrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 143,
              "src": "1730:13:11",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                "typeString": "contract BaseRegistrar"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3089,
            "name": "claims",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1766:37:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
              "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
            },
            "typeName": {
              "id": 3088,
              "keyType": {
                "id": 3086,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1774:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1766:23:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 3087,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 3077,
                "src": "1783:5:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                  "typeString": "struct ShortNameClaims.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3093,
            "name": "approvedNames",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1809:36:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 3092,
              "keyType": {
                "id": 3090,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1817:7:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1809:22:11",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 3091,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1826:4:11",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3095,
            "name": "pendingClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1851:25:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3094,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1851:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3097,
            "name": "unresolvedClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1882:28:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3096,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1882:4:11",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3099,
            "name": "phase",
            "nodeType": "VariableDeclaration",
            "scope": 4014,
            "src": "1916:18:11",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Phase_$3063",
              "typeString": "enum ShortNameClaims.Phase"
            },
            "typeName": {
              "contractScope": null,
              "id": 3098,
              "name": "Phase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3063,
              "src": "1916:5:11",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Phase_$3063",
                "typeString": "enum ShortNameClaims.Phase"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3111,
            "name": "ClaimSubmitted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3110,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3101,
                  "indexed": false,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "1962:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3100,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3103,
                  "indexed": false,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "1978:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3102,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3105,
                  "indexed": false,
                  "name": "paid",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "1993:9:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3104,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1993:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3107,
                  "indexed": false,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "2004:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3106,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2004:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3109,
                  "indexed": false,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3111,
                  "src": "2022:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3108,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2022:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1961:74:11"
            },
            "src": "1941:95:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3117,
            "name": "ClaimStatusChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3116,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3113,
                  "indexed": true,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3117,
                  "src": "2066:23:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3112,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2066:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3115,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 3117,
                  "src": "2091:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3068",
                    "typeString": "enum ShortNameClaims.Status"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3114,
                    "name": "Status",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3068,
                    "src": "2091:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2065:40:11"
            },
            "src": "2041:65:11"
          },
          {
            "body": {
              "id": 3152,
              "nodeType": "Block",
              "src": "2202:170:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3126,
                      "name": "priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3083,
                      "src": "2212:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2239",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3127,
                      "name": "_priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3119,
                      "src": "2226:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2239",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "src": "2212:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2239",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "id": 3129,
                  "nodeType": "ExpressionStatement",
                  "src": "2212:26:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3130,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3085,
                      "src": "2248:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3131,
                      "name": "_registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3121,
                      "src": "2260:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "src": "2248:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "id": 3133,
                  "nodeType": "ExpressionStatement",
                  "src": "2248:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3134,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3099,
                      "src": "2280:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3135,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3063,
                        "src": "2288:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "OPEN",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2288:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "2280:18:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3138,
                  "nodeType": "ExpressionStatement",
                  "src": "2280:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3142,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12917,
                          "src": "2320:3:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2320:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3139,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3079,
                        "src": "2309:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3141,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2309:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2309:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3145,
                  "nodeType": "ExpressionStatement",
                  "src": "2309:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3149,
                        "name": "_ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3123,
                        "src": "2355:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3146,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3081,
                        "src": "2341:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2341:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2341:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3151,
                  "nodeType": "ExpressionStatement",
                  "src": "2341:24:11"
                }
              ]
            },
            "documentation": null,
            "id": 3153,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3119,
                  "name": "_priceOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 3153,
                  "src": "2124:24:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PriceOracle_$2239",
                    "typeString": "contract PriceOracle"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3118,
                    "name": "PriceOracle",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2239,
                    "src": "2124:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2239",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3121,
                  "name": "_registrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 3153,
                  "src": "2150:24:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                    "typeString": "contract BaseRegistrar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3120,
                    "name": "BaseRegistrar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 143,
                    "src": "2150:13:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3123,
                  "name": "_ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3153,
                  "src": "2176:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3122,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2176:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2123:71:11"
            },
            "returnParameters": {
              "id": 3125,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2202:0:11"
            },
            "scope": 4014,
            "src": "2112:260:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3165,
              "nodeType": "Block",
              "src": "2399:86:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3158,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12917,
                              "src": "2428:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3159,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2428:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3156,
                            "name": "owners",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3079,
                            "src": "2417:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11820_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3157,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11906,
                          "src": "2417:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3160,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2417:22:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d75737420626520616e206f776e6572",
                        "id": 3161,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2441:25:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9b8e6bbfdd4bed72ccc6ec74c79bd079b12f3e283f1a82da5a522ffd999fec2d",
                          "typeString": "literal_string \"Caller must be an owner\""
                        },
                        "value": "Caller must be an owner"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9b8e6bbfdd4bed72ccc6ec74c79bd079b12f3e283f1a82da5a522ffd999fec2d",
                          "typeString": "literal_string \"Caller must be an owner\""
                        }
                      ],
                      "id": 3155,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "2409:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2409:58:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3163,
                  "nodeType": "ExpressionStatement",
                  "src": "2409:58:11"
                },
                {
                  "id": 3164,
                  "nodeType": "PlaceholderStatement",
                  "src": "2477:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 3166,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3154,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2396:2:11"
            },
            "src": "2378:107:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3178,
              "nodeType": "Block",
              "src": "2515:91:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3171,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12917,
                              "src": "2547:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3172,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2547:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3169,
                            "name": "ratifiers",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3081,
                            "src": "2533:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11820_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3170,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11906,
                          "src": "2533:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3173,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2533:25:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d7573742062652061207261746966696572",
                        "id": 3174,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2560:27:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d6957ad9c583f70c2eda523ca991dc398849403253aefbe176a02d923da5ad9c",
                          "typeString": "literal_string \"Caller must be a ratifier\""
                        },
                        "value": "Caller must be a ratifier"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d6957ad9c583f70c2eda523ca991dc398849403253aefbe176a02d923da5ad9c",
                          "typeString": "literal_string \"Caller must be a ratifier\""
                        }
                      ],
                      "id": 3168,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "2525:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3175,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2525:63:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3176,
                  "nodeType": "ExpressionStatement",
                  "src": "2525:63:11"
                },
                {
                  "id": 3177,
                  "nodeType": "PlaceholderStatement",
                  "src": "2598:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 3179,
            "name": "onlyRatifier",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3167,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2512:2:11"
            },
            "src": "2491:115:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3191,
              "nodeType": "Block",
              "src": "2638:72:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Phase_$3063",
                          "typeString": "enum ShortNameClaims.Phase"
                        },
                        "id": 3186,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3184,
                          "name": "phase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3099,
                          "src": "2656:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3063",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3185,
                          "name": "p",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3181,
                          "src": "2665:1:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3063",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "src": "2656:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420696e207265717569726564207068617365",
                        "id": 3187,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2668:23:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_723f2a764b7a7ec11c7daeff4e2814caaf39645c514090a79733a58fa4742cac",
                          "typeString": "literal_string \"Not in required phase\""
                        },
                        "value": "Not in required phase"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_723f2a764b7a7ec11c7daeff4e2814caaf39645c514090a79733a58fa4742cac",
                          "typeString": "literal_string \"Not in required phase\""
                        }
                      ],
                      "id": 3183,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "2648:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2648:44:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3189,
                  "nodeType": "ExpressionStatement",
                  "src": "2648:44:11"
                },
                {
                  "id": 3190,
                  "nodeType": "PlaceholderStatement",
                  "src": "2702:1:11"
                }
              ]
            },
            "documentation": null,
            "id": 3192,
            "name": "inPhase",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3181,
                  "name": "p",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2629:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Phase_$3063",
                    "typeString": "enum ShortNameClaims.Phase"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3180,
                    "name": "Phase",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3063,
                    "src": "2629:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2628:9:11"
            },
            "src": "2612:98:11",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3205,
              "nodeType": "Block",
              "src": "2768:34:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3202,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3194,
                        "src": "2789:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3199,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3079,
                        "src": "2778:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3201,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2778:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2778:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3204,
                  "nodeType": "ExpressionStatement",
                  "src": "2778:17:11"
                }
              ]
            },
            "documentation": null,
            "id": 3206,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3197,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3196,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "2758:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2758:9:11"
              }
            ],
            "name": "addOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3194,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3206,
                  "src": "2734:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2734:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2733:15:11"
            },
            "returnParameters": {
              "id": 3198,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2768:0:11"
            },
            "scope": 4014,
            "src": "2716:86:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3219,
              "nodeType": "Block",
              "src": "2863:37:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3216,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3208,
                        "src": "2887:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3213,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3079,
                        "src": "2873:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3215,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11883,
                      "src": "2873:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3217,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2873:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3218,
                  "nodeType": "ExpressionStatement",
                  "src": "2873:20:11"
                }
              ]
            },
            "documentation": null,
            "id": 3220,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3211,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3210,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "2853:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2853:9:11"
              }
            ],
            "name": "removeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3208,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3220,
                  "src": "2829:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3207,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2829:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2828:15:11"
            },
            "returnParameters": {
              "id": 3212,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2863:0:11"
            },
            "scope": 4014,
            "src": "2808:92:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3233,
              "nodeType": "Block",
              "src": "2967:40:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3230,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3222,
                        "src": "2991:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3227,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3081,
                        "src": "2977:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3229,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11852,
                      "src": "2977:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2977:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3232,
                  "nodeType": "ExpressionStatement",
                  "src": "2977:23:11"
                }
              ]
            },
            "documentation": null,
            "id": 3234,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3225,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3224,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3179,
                  "src": "2954:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2954:12:11"
              }
            ],
            "name": "addRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3222,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3234,
                  "src": "2927:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3221,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2927:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2926:18:11"
            },
            "returnParameters": {
              "id": 3226,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2967:0:11"
            },
            "scope": 4014,
            "src": "2906:101:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3247,
              "nodeType": "Block",
              "src": "3077:43:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3244,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3236,
                        "src": "3104:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3081,
                        "src": "3087:9:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11820_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3243,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11883,
                      "src": "3087:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3087:26:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3246,
                  "nodeType": "ExpressionStatement",
                  "src": "3087:26:11"
                }
              ]
            },
            "documentation": null,
            "id": 3248,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3239,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3238,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3179,
                  "src": "3064:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3064:12:11"
              }
            ],
            "name": "removeRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3236,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3248,
                  "src": "3037:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3235,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3037:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3036:18:11"
            },
            "returnParameters": {
              "id": 3240,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3077:0:11"
            },
            "scope": 4014,
            "src": "3013:107:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3281,
              "nodeType": "Block",
              "src": "3607:133:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3266,
                                    "name": "claimed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3250,
                                    "src": "3667:7:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3265,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3661:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3267,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3661:14:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3264,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12911,
                              "src": "3651:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3268,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3651:25:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3270,
                                "name": "dnsname",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3252,
                                "src": "3688:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3269,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12911,
                              "src": "3678:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3271,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3678:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3272,
                            "name": "claimant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3254,
                            "src": "3698:8:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3275,
                                    "name": "email",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3256,
                                    "src": "3724:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3274,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3718:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3276,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3718:12:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3273,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12911,
                              "src": "3708:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3277,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3708:23:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3262,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12904,
                            "src": "3634:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3263,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3634:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3634:98:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3261,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12911,
                      "src": "3624:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3624:109:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3260,
                  "id": 3280,
                  "nodeType": "Return",
                  "src": "3617:116:11"
                }
              ]
            },
            "documentation": "@dev Computes the claim ID for a submitted claim, so it can be looked up\n     using `claims`.\n@param claimed The name being claimed (eg, 'foo')\n@param dnsname The DNS-encoded name supporting the claim (eg, 'foo.test')\n@param claimant The address making the claim.\n@return The claim ID.",
            "id": 3282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "computeClaimId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3257,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3250,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3494:21:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3249,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3494:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3252,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3517:20:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3251,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3254,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3539:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3253,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3539:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3256,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3557:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3255,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3557:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3493:84:11"
            },
            "returnParameters": {
              "id": 3260,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3259,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3282,
                  "src": "3598:7:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3258,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3598:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3597:9:11"
            },
            "scope": 4014,
            "src": "3470:270:11",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3296,
              "nodeType": "Block",
              "src": "3988:74:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3291,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3284,
                        "src": "4023:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3292,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4032:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 3293,
                        "name": "REGISTRATION_PERIOD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3050,
                        "src": "4035:19:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3289,
                        "name": "priceOracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3083,
                        "src": "4005:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PriceOracle_$2239",
                          "typeString": "contract PriceOracle"
                        }
                      },
                      "id": 3290,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2238,
                      "src": "4005:17:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (string memory,uint256,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 3294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4005:50:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3288,
                  "id": 3295,
                  "nodeType": "Return",
                  "src": "3998:57:11"
                }
              ]
            },
            "documentation": "@dev Returns the cost associated with placing a claim.\n@param claimed The name being claimed.\n@return The cost in wei for this claim.",
            "id": 3297,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getClaimCost",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3284,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3297,
                  "src": "3939:21:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3283,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3939:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3938:23:11"
            },
            "returnParameters": {
              "id": 3288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3287,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3297,
                  "src": "3982:4:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3982:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3981:6:11"
            },
            "scope": 4014,
            "src": "3917:145:11",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3320,
              "nodeType": "Block",
              "src": "4779:111:11",
              "statements": [
                {
                  "assignments": [
                    3307
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3307,
                      "name": "claimed",
                      "nodeType": "VariableDeclaration",
                      "scope": 3320,
                      "src": "4789:21:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3306,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4789:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3312,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3309,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3299,
                        "src": "4822:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3310,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4828:1:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        }
                      ],
                      "id": 3308,
                      "name": "getLabel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3999,
                      "src": "4813:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                      }
                    },
                    "id": 3311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4813:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4789:41:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3314,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3307,
                        "src": "4852:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3315,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3299,
                        "src": "4861:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3316,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3301,
                        "src": "4867:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3317,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3303,
                        "src": "4877:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3313,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3933,
                      "src": "4840:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,address,string memory)"
                      }
                    },
                    "id": 3318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4840:43:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3319,
                  "nodeType": "ExpressionStatement",
                  "src": "4840:43:11"
                }
              ]
            },
            "documentation": "@dev Submits a claim for an exact match (eg, foo.test -> foo.eth).\n     Claimants must provide an amount of ether equal to 365 days'\n     registration cost; call `getClaimCost` to determine this amount.\n     Claimants should supply a little extra in case of variation in price;\n     any excess will be returned to the sender.\n@param name The DNS-encoded name of the domain being used to support the\n            claim.\n@param claimant The address of the claimant.\n@param email An email address for correspondence regarding the claim.",
            "id": 3321,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitExactClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3304,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3299,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "4706:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3298,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4706:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3301,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "4725:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3300,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4725:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3303,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "4743:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3302,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4743:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4705:58:11"
            },
            "returnParameters": {
              "id": 3305,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4779:0:11"
            },
            "scope": 4014,
            "src": "4680:210:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3385,
              "nodeType": "Block",
              "src": "5609:347:11",
              "statements": [
                {
                  "assignments": [
                    3331
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3331,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3385,
                      "src": "5619:23:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3330,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5619:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3338,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3334,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3323,
                            "src": "5660:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3335,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5666:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 3333,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3999,
                          "src": "5651:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                          }
                        },
                        "id": 3336,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5651:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3332,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5645:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5645:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5619:50:11"
                },
                {
                  "assignments": [
                    3340
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3340,
                      "name": "secondLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3385,
                      "src": "5679:24:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3339,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5679:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3347,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3343,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3323,
                            "src": "5721:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "31",
                            "id": 3344,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5727:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 3342,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3999,
                          "src": "5712:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                          }
                        },
                        "id": 3345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5712:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5706:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5706:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5679:51:11"
                },
                {
                  "assignments": [
                    3351
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3351,
                      "name": "buf",
                      "nodeType": "VariableDeclaration",
                      "scope": 3385,
                      "src": "5740:24:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                        "typeString": "struct Buffer.buffer"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3350,
                        "name": "Buffer.buffer",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4527,
                        "src": "5740:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_storage_ptr",
                          "typeString": "struct Buffer.buffer"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3352,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5740:24:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3356,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3331,
                            "src": "5783:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5783:17:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3358,
                            "name": "secondLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3340,
                            "src": "5803:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5803:18:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5783:38:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3353,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3351,
                        "src": "5774:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3355,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4562,
                      "src": "5774:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4527_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$4527_memory_ptr_$bound_to$_t_struct$_buffer_$4527_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,uint256) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5774:48:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3362,
                  "nodeType": "ExpressionStatement",
                  "src": "5774:48:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3366,
                        "name": "firstLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3331,
                        "src": "5843:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3363,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3351,
                        "src": "5832:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3365,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4763,
                      "src": "5832:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4527_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4527_memory_ptr_$bound_to$_t_struct$_buffer_$4527_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3367,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5832:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3368,
                  "nodeType": "ExpressionStatement",
                  "src": "5832:22:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3372,
                        "name": "secondLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3340,
                        "src": "5875:11:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3369,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3351,
                        "src": "5864:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3371,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4763,
                      "src": "5864:10:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4527_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4527_memory_ptr_$bound_to$_t_struct$_buffer_$4527_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3373,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5864:23:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3374,
                  "nodeType": "ExpressionStatement",
                  "src": "5864:23:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3377,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3351,
                              "src": "5917:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$4527_memory_ptr",
                                "typeString": "struct Buffer.buffer memory"
                              }
                            },
                            "id": 3378,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "buf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4524,
                            "src": "5917:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3376,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5910:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5910:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3380,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3323,
                        "src": "5927:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3381,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3325,
                        "src": "5933:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3382,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3327,
                        "src": "5943:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3375,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3933,
                      "src": "5898:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,address,string memory)"
                      }
                    },
                    "id": 3383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5898:51:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3384,
                  "nodeType": "ExpressionStatement",
                  "src": "5898:51:11"
                }
              ]
            },
            "documentation": "@dev Submits a claim for match on name+tld (eg, foo.tv -> footv).\n     Claimants must provide an amount of ether equal to 365 days'\n     registration cost; call `getClaimCost` to determine this amount.\n     Claimants should supply a little extra in case of variation in price;\n     any excess will be returned to the sender.\n@param name The DNS-encoded name of the domain being used to support the\n            claim.\n@param claimant The address of the claimant.\n@param email An email address for correspondence regarding the claim.",
            "id": 3386,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitCombinedClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3323,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3386,
                  "src": "5536:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3322,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5536:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3325,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3386,
                  "src": "5555:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3324,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5555:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3327,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3386,
                  "src": "5573:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3326,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5573:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5535:58:11"
            },
            "returnParameters": {
              "id": 3329,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5609:0:11"
            },
            "scope": 4014,
            "src": "5507:449:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3433,
              "nodeType": "Block",
              "src": "6675:240:11",
              "statements": [
                {
                  "assignments": [
                    3396
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3396,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3433,
                      "src": "6685:23:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3395,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "6685:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3403,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3399,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3388,
                            "src": "6726:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3400,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6732:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            },
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 3398,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3999,
                          "src": "6717:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                          }
                        },
                        "id": 3401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6717:17:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3397,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6711:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6711:24:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6685:50:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3407,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3396,
                                "src": "6771:10:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3408,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6771:17:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 3409,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6791:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            },
                            "src": "6771:21:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "657468",
                                "id": 3412,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6800:5:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                },
                                "value": "eth"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                }
                              ],
                              "id": 3411,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6794:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3413,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6794:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3405,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3396,
                            "src": "6753:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3406,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "equals",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5257,
                          "src": "6753:17:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$bound_to$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256,bytes memory) pure returns (bool)"
                          }
                        },
                        "id": 3414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6753:54:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3404,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "6745:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3415,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6745:63:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3416,
                  "nodeType": "ExpressionStatement",
                  "src": "6745:63:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6858:1:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3425,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3422,
                                    "name": "firstLabel",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3396,
                                    "src": "6861:10:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 3423,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "6861:17:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "33",
                                  "id": 3424,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6881:1:11",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_3_by_1",
                                    "typeString": "int_const 3"
                                  },
                                  "value": "3"
                                },
                                "src": "6861:21:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 3419,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3396,
                                "src": "6837:10:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3420,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "substring",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5489,
                              "src": "6837:20:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
                                "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
                              }
                            },
                            "id": 3426,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6837:46:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3418,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6830:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3427,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6830:54:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3428,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3388,
                        "src": "6886:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3429,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "6892:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3430,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3392,
                        "src": "6902:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3417,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3933,
                      "src": "6818:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,address,string memory)"
                      }
                    },
                    "id": 3431,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6818:90:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3432,
                  "nodeType": "ExpressionStatement",
                  "src": "6818:90:11"
                }
              ]
            },
            "documentation": "@dev Submits a claim for prefix match (eg, fooeth.test -> foo.eth).\n     Claimants must provide an amount of ether equal to 365 days'\n     registration cost; call `getClaimCost` to determine this amount.\n     Claimants should supply a little extra in case of variation in price;\n     any excess will be returned to the sender.\n@param name The DNS-encoded name of the domain being used to support the\n            claim.\n@param claimant The address of the claimant.\n@param email An email address for correspondence regarding the claim.",
            "id": 3434,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitPrefixClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3393,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3388,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "6602:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3387,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6602:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3390,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "6621:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3389,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6621:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3392,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3434,
                  "src": "6639:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3391,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6639:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6601:58:11"
            },
            "returnParameters": {
              "id": 3394,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6675:0:11"
            },
            "scope": 4014,
            "src": "6575:340:11",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3448,
              "nodeType": "Block",
              "src": "7087:37:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3443,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3099,
                      "src": "7097:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3444,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3063,
                        "src": "7105:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3445,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "REVIEW",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7105:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7097:20:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3447,
                  "nodeType": "ExpressionStatement",
                  "src": "7097:20:11"
                }
              ]
            },
            "documentation": "@dev Closes the claim submission period.\n     Callable only by the owner.",
            "id": 3449,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3437,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3436,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "7057:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7057:9:11"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3439,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "7075:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7075:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3441,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3438,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "7067:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7067:19:11"
              }
            ],
            "name": "closeClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3435,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7045:2:11"
            },
            "returnParameters": {
              "id": 3442,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7087:0:11"
            },
            "scope": 4014,
            "src": "7025:99:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3469,
              "nodeType": "Block",
              "src": "7374:133:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3461,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3459,
                          "name": "pendingClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3095,
                          "src": "7452:13:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7469:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7452:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3458,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "7444:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7444:27:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3463,
                  "nodeType": "ExpressionStatement",
                  "src": "7444:27:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3464,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3099,
                      "src": "7481:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3465,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3063,
                        "src": "7489:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3466,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "FINAL",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7489:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3063",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7481:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3468,
                  "nodeType": "ExpressionStatement",
                  "src": "7481:19:11"
                }
              ]
            },
            "documentation": "@dev Ratifies the current set of claims.\n     Ratification freezes the claims and their resolutions, and permits\n     them to be acted on.",
            "id": 3470,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3452,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3451,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3179,
                  "src": "7339:12:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7339:12:11"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3454,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "7360:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7360:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3456,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3453,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "7352:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7352:21:11"
              }
            ],
            "name": "ratifyClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3450,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7327:2:11"
            },
            "returnParameters": {
              "id": 3457,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7374:0:11"
            },
            "scope": 4014,
            "src": "7306:201:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3492,
              "nodeType": "Block",
              "src": "7720:92:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3482,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3480,
                          "name": "unresolvedClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3097,
                          "src": "7738:16:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3481,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7758:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7738:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3479,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "7730:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7730:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3484,
                  "nodeType": "ExpressionStatement",
                  "src": "7730:30:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3487,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12917,
                              "src": "7793:3:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7793:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 3486,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4013,
                          "src": "7783:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3489,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7783:21:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3485,
                      "name": "selfdestruct",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12925,
                      "src": "7770:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable)"
                      }
                    },
                    "id": 3490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7770:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3491,
                  "nodeType": "ExpressionStatement",
                  "src": "7770:35:11"
                }
              ]
            },
            "documentation": "@dev Cleans up the contract, after all claims are resolved.\n     Callable only by the owner, and only in final state.",
            "id": 3493,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3473,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3472,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3166,
                  "src": "7689:9:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7689:9:11"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3475,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "7707:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3476,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7707:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3477,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3474,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "7699:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7699:20:11"
              }
            ],
            "name": "destroy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3471,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7677:2:11"
            },
            "returnParameters": {
              "id": 3478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7720:0:11"
            },
            "scope": 4014,
            "src": "7661:151:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3598,
              "nodeType": "Block",
              "src": "8221:983:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3515,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3507,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12917,
                                "src": "8296:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3508,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8296:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3505,
                              "name": "owners",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3079,
                              "src": "8285:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11820_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3506,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11906,
                            "src": "8285:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3509,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8285:22:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3512,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12917,
                                "src": "8325:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3513,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8325:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3510,
                              "name": "ratifiers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3081,
                              "src": "8311:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11820_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3511,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11906,
                            "src": "8311:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11820_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11820_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3514,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8311:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8285:51:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3504,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "8277:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8277:60:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3517,
                  "nodeType": "ExpressionStatement",
                  "src": "8277:60:11"
                },
                {
                  "assignments": [
                    3519
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3519,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3598,
                      "src": "8348:18:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3518,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3077,
                        "src": "8348:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3523,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3520,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3089,
                      "src": "8369:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3522,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3521,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3495,
                      "src": "8376:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8369:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8348:36:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3525,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3519,
                            "src": "8402:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3526,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3074,
                          "src": "8402:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3527,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8415:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8402:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8418:17:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        },
                        "value": "Claim not found"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        }
                      ],
                      "id": 3524,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "8394:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8394:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3531,
                  "nodeType": "ExpressionStatement",
                  "src": "8394:42:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3536,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3532,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3519,
                        "src": "8450:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3533,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "8450:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3534,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "8466:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3535,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8466:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "8450:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3544,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3519,
                          "src": "8634:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3545,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3076,
                        "src": "8634:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3546,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3068,
                          "src": "8650:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3547,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "APPROVED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8650:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "8634:31:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 3557,
                    "nodeType": "IfStatement",
                    "src": "8631:166:11",
                    "trueBody": {
                      "id": 3556,
                      "nodeType": "Block",
                      "src": "8667:130:11",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3549,
                                "name": "approvedNames",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3093,
                                "src": "8748:13:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                  "typeString": "mapping(bytes32 => bool)"
                                }
                              },
                              "id": 3552,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3550,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3519,
                                  "src": "8762:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3551,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "labelHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3070,
                                "src": "8762:15:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "8748:30:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3553,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8781:5:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "8748:38:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3555,
                          "nodeType": "ExpressionStatement",
                          "src": "8748:38:11"
                        }
                      ]
                    }
                  },
                  "id": 3558,
                  "nodeType": "IfStatement",
                  "src": "8447:350:11",
                  "trueBody": {
                    "id": 3543,
                    "nodeType": "Block",
                    "src": "8482:143:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3538,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "8569:15:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3537,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3095,
                            "src": "8569:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3539,
                        "nodeType": "ExpressionStatement",
                        "src": "8569:15:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3541,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "8596:18:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3540,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3097,
                            "src": "8596:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3542,
                        "nodeType": "ExpressionStatement",
                        "src": "8596:18:11"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 3559,
                    "name": "approved",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3497,
                    "src": "8918:8:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3576,
                  "nodeType": "IfStatement",
                  "src": "8915:125:11",
                  "trueBody": {
                    "id": 3575,
                    "nodeType": "Block",
                    "src": "8928:112:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3565,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "!",
                              "prefix": true,
                              "src": "8948:31:11",
                              "subExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3561,
                                  "name": "approvedNames",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3093,
                                  "src": "8949:13:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                    "typeString": "mapping(bytes32 => bool)"
                                  }
                                },
                                "id": 3564,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3562,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3519,
                                    "src": "8963:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3563,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3070,
                                  "src": "8963:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8949:30:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3560,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              12920,
                              12921
                            ],
                            "referencedDeclaration": 12920,
                            "src": "8940:7:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 3566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8940:40:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3567,
                        "nodeType": "ExpressionStatement",
                        "src": "8940:40:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3568,
                              "name": "approvedNames",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3093,
                              "src": "8992:13:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                              }
                            },
                            "id": 3571,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3569,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3519,
                                "src": "9006:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3570,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "labelHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3070,
                              "src": "9006:15:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8992:30:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 3572,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9025:4:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "8992:37:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3574,
                        "nodeType": "ExpressionStatement",
                        "src": "8992:37:11"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    3578
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3578,
                      "name": "status",
                      "nodeType": "VariableDeclaration",
                      "scope": 3598,
                      "src": "9050:13:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3577,
                        "name": "Status",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3068,
                        "src": "9050:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3585,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "id": 3579,
                      "name": "approved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3497,
                      "src": "9066:8:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3582,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "9091:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3583,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "DECLINED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9091:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "id": 3584,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "9066:40:11",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3580,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "9075:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9075:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9050:56:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3591,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3586,
                          "name": "claims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3089,
                          "src": "9116:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                            "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                          }
                        },
                        "id": 3588,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3587,
                          "name": "claimId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3495,
                          "src": "9123:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9116:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage",
                          "typeString": "struct ShortNameClaims.Claim storage ref"
                        }
                      },
                      "id": 3589,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "9116:22:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3590,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3578,
                      "src": "9141:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "9116:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "id": 3592,
                  "nodeType": "ExpressionStatement",
                  "src": "9116:31:11"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3594,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3495,
                        "src": "9181:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3595,
                        "name": "status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3578,
                        "src": "9190:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3593,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3117,
                      "src": "9162:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3068_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9162:35:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3597,
                  "nodeType": "EmitStatement",
                  "src": "9157:40:11"
                }
              ]
            },
            "documentation": "@dev Sets the status of a claim to either APPROVED or DECLINED.\n     Callable only during the review phase, and only by the owner or\n     ratifier.\n@param claimId The claim to set the status of.\n@param approved True if the claim is approved, false if it is declined.",
            "id": 3599,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3500,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "8207:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "8207:12:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3502,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3499,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "8199:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8199:21:11"
              }
            ],
            "name": "setClaimStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3498,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3495,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3599,
                  "src": "8160:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3494,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8160:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3497,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3599,
                  "src": "8177:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3496,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8177:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8159:32:11"
            },
            "returnParameters": {
              "id": 3503,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8221:0:11"
            },
            "scope": 4014,
            "src": "8136:1068:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3648,
              "nodeType": "Block",
              "src": "9559:226:11",
              "statements": [
                {
                  "body": {
                    "id": 3626,
                    "nodeType": "Block",
                    "src": "9611:58:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3620,
                                "name": "approved",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3602,
                                "src": "9640:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3622,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3621,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3609,
                                "src": "9649:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9640:11:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 3623,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9653:4:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3619,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3599,
                            "src": "9625:14:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3624,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9625:33:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3625,
                        "nodeType": "ExpressionStatement",
                        "src": "9625:33:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3615,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3612,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3609,
                      "src": "9585:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3613,
                        "name": "approved",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3602,
                        "src": "9589:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3614,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9589:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9585:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3627,
                  "initializationExpression": {
                    "assignments": [
                      3609
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3609,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3627,
                        "src": "9573:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3608,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9573:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3611,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9582:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9573:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9606:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3616,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3609,
                        "src": "9606:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3618,
                    "nodeType": "ExpressionStatement",
                    "src": "9606:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "9569:100:11"
                },
                {
                  "body": {
                    "id": 3646,
                    "nodeType": "Block",
                    "src": "9720:59:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3640,
                                "name": "declined",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3605,
                                "src": "9749:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3642,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3641,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3629,
                                "src": "9758:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9749:11:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9762:5:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3639,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3599,
                            "src": "9734:14:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9734:34:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3645,
                        "nodeType": "ExpressionStatement",
                        "src": "9734:34:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3632,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3629,
                      "src": "9694:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3633,
                        "name": "declined",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3605,
                        "src": "9698:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3634,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9698:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9694:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3647,
                  "initializationExpression": {
                    "assignments": [
                      3629
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3629,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3647,
                        "src": "9682:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3628,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9682:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3631,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3630,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9691:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9682:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3637,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9715:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3636,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3629,
                        "src": "9715:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3638,
                    "nodeType": "ExpressionStatement",
                    "src": "9715:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "9678:101:11"
                }
              ]
            },
            "documentation": "@dev Sets the status of multiple claims. Callable only during the review\n     phase, and only by the owner or ratifier.\n@param approved A list of approved claim IDs.\n@param declined A list of declined claim IDs.",
            "id": 3649,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setClaimStatuses",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3606,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3602,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "9492:27:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3600,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9492:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3601,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9492:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3605,
                  "name": "declined",
                  "nodeType": "VariableDeclaration",
                  "scope": 3649,
                  "src": "9521:27:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3603,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9521:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3604,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9521:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9491:58:11"
            },
            "returnParameters": {
              "id": 3607,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9559:0:11"
            },
            "scope": 4014,
            "src": "9466:319:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3730,
              "nodeType": "Block",
              "src": "10077:667:11",
              "statements": [
                {
                  "assignments": [
                    3659
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3659,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3730,
                      "src": "10087:18:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3658,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3077,
                        "src": "10087:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3663,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3660,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3089,
                      "src": "10108:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3662,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3661,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3651,
                      "src": "10115:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10108:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10087:36:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3668,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3665,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3659,
                            "src": "10141:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3666,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3074,
                          "src": "10141:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3667,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10154:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10141:14:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10157:17:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        },
                        "value": "Claim not found"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a52fe57d7e8b59c21e4296ece9ccb6ee31a1612e4ebd5b995b667e1cfcf090fd",
                          "typeString": "literal_string \"Claim not found\""
                        }
                      ],
                      "id": 3664,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "10133:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10133:42:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3671,
                  "nodeType": "ExpressionStatement",
                  "src": "10133:42:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3672,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3659,
                        "src": "10189:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3673,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "10189:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3674,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "10205:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3675,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10205:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "10189:31:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3700,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3659,
                          "src": "10400:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3701,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3076,
                        "src": "10400:12:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3702,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3068,
                          "src": "10416:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3703,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "DECLINED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10416:15:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "10400:31:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 3719,
                      "nodeType": "Block",
                      "src": "10510:167:11",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 3716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10660:5:11",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 3715,
                              "name": "assert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12906,
                              "src": "10653:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                "typeString": "function (bool) pure"
                              }
                            },
                            "id": 3717,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10653:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3718,
                          "nodeType": "ExpressionStatement",
                          "src": "10653:13:11"
                        }
                      ]
                    },
                    "id": 3720,
                    "nodeType": "IfStatement",
                    "src": "10397:280:11",
                    "trueBody": {
                      "id": 3714,
                      "nodeType": "Block",
                      "src": "10433:71:11",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3710,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3659,
                                  "src": "10482:5:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3711,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "paid",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3074,
                                "src": "10482:10:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3706,
                                      "name": "claim",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3659,
                                      "src": "10457:5:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                        "typeString": "struct ShortNameClaims.Claim memory"
                                      }
                                    },
                                    "id": 3707,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "claimant",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3072,
                                    "src": "10457:14:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 3705,
                                  "name": "toPayable",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4013,
                                  "src": "10447:9:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                    "typeString": "function (address) pure returns (address payable)"
                                  }
                                },
                                "id": 3708,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10447:25:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              },
                              "id": 3709,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10447:34:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                "typeString": "function (uint256)"
                              }
                            },
                            "id": 3712,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10447:46:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3713,
                          "nodeType": "ExpressionStatement",
                          "src": "10447:46:11"
                        }
                      ]
                    }
                  },
                  "id": 3721,
                  "nodeType": "IfStatement",
                  "src": "10186:491:11",
                  "trueBody": {
                    "id": 3699,
                    "nodeType": "Block",
                    "src": "10222:169:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3681,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3659,
                                    "src": "10263:5:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3682,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3070,
                                  "src": "10263:15:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 3680,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "10255:7:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint256"
                              },
                              "id": 3683,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10255:24:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3684,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3659,
                                "src": "10281:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3685,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "claimant",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3072,
                              "src": "10281:14:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3686,
                              "name": "REGISTRATION_PERIOD",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3050,
                              "src": "10297:19:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3677,
                              "name": "registrar",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3085,
                              "src": "10236:9:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                                "typeString": "contract BaseRegistrar"
                              }
                            },
                            "id": 3679,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "register",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 126,
                            "src": "10236:18:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,address,uint256) external returns (uint256)"
                            }
                          },
                          "id": 3687,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10236:81:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3688,
                        "nodeType": "ExpressionStatement",
                        "src": "10236:81:11"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3695,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3659,
                                "src": "10369:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3696,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "paid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3074,
                              "src": "10369:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3690,
                                      "name": "registrar",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3085,
                                      "src": "10341:9:11",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_BaseRegistrar_$143",
                                        "typeString": "contract BaseRegistrar"
                                      }
                                    },
                                    "id": 3691,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "owner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 12130,
                                    "src": "10341:15:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                      "typeString": "function () view external returns (address)"
                                    }
                                  },
                                  "id": 3692,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10341:17:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 3689,
                                "name": "toPayable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4013,
                                "src": "10331:9:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                  "typeString": "function (address) pure returns (address payable)"
                                }
                              },
                              "id": 3693,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10331:28:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3694,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10331:37:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10331:49:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3698,
                        "nodeType": "ExpressionStatement",
                        "src": "10331:49:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3723,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "--",
                    "prefix": false,
                    "src": "10687:18:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3722,
                      "name": "unresolvedClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3097,
                      "src": "10687:16:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3724,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:18:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3728,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "10715:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3725,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "10722:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3727,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3726,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3651,
                        "src": "10729:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10722:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3729,
                  "nodeType": "ExpressionStatement",
                  "src": "10715:22:11"
                }
              ]
            },
            "documentation": "@dev Resolves a claim. Callable by anyone, only in the final phase.\n     Resolving a claim either registers the name or refunds the claimant.\n@param claimId The claim ID to resolve.",
            "id": 3731,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3654,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "10064:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "10064:11:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3656,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3653,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "10056:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10056:20:11"
              }
            ],
            "name": "resolveClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3651,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3731,
                  "src": "10032:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3650,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10032:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10031:17:11"
            },
            "returnParameters": {
              "id": 3657,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10077:0:11"
            },
            "scope": 4014,
            "src": "10010:734:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3756,
              "nodeType": "Block",
              "src": "10965:108:11",
              "statements": [
                {
                  "body": {
                    "id": 3754,
                    "nodeType": "Block",
                    "src": "11017:50:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3749,
                                "name": "claimIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3734,
                                "src": "11044:8:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3751,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3750,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3738,
                                "src": "11053:1:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11044:11:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3748,
                            "name": "resolveClaim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3731,
                            "src": "11031:12:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 3752,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11031:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3753,
                        "nodeType": "ExpressionStatement",
                        "src": "11031:25:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3744,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3741,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3738,
                      "src": "10991:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3742,
                        "name": "claimIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3734,
                        "src": "10995:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3743,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10995:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10991:19:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3755,
                  "initializationExpression": {
                    "assignments": [
                      3738
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3738,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3755,
                        "src": "10979:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3737,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10979:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3740,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10988:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10979:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "11012:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3745,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3738,
                        "src": "11012:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3747,
                    "nodeType": "ExpressionStatement",
                    "src": "11012:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "10975:92:11"
                }
              ]
            },
            "documentation": "@dev Resolves multiple claims. Callable by anyone, only in the final phase.\n@param claimIds A list of claim IDs to resolve.",
            "id": 3757,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "resolveClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3735,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3734,
                  "name": "claimIds",
                  "nodeType": "VariableDeclaration",
                  "scope": 3757,
                  "src": "10927:27:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3732,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10927:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3733,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10927:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10926:29:11"
            },
            "returnParameters": {
              "id": 3736,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10965:0:11"
            },
            "scope": 4014,
            "src": "10904:169:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3810,
              "nodeType": "Block",
              "src": "11311:421:11",
              "statements": [
                {
                  "assignments": [
                    3763
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3763,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3810,
                      "src": "11321:18:11",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3762,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3077,
                        "src": "11321:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3767,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3764,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3089,
                      "src": "11342:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3766,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3765,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3759,
                      "src": "11349:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11342:15:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11321:36:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3773,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3769,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12917,
                            "src": "11413:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3770,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11413:10:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3771,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3763,
                            "src": "11427:5:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3772,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "claimant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3072,
                          "src": "11427:14:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11413:28:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3768,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "11405:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3774,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11405:37:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3775,
                  "nodeType": "ExpressionStatement",
                  "src": "11405:37:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3068",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3776,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3763,
                        "src": "11456:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3777,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3076,
                      "src": "11456:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3778,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3068,
                        "src": "11472:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11472:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3068",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "11456:30:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 3788,
                    "nodeType": "Block",
                    "src": "11534:43:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11548:18:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3785,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3097,
                            "src": "11548:16:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3787,
                        "nodeType": "ExpressionStatement",
                        "src": "11548:18:11"
                      }
                    ]
                  },
                  "id": 3789,
                  "nodeType": "IfStatement",
                  "src": "11453:124:11",
                  "trueBody": {
                    "id": 3784,
                    "nodeType": "Block",
                    "src": "11488:40:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3782,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11502:15:11",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3781,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3095,
                            "src": "11502:13:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3783,
                        "nodeType": "ExpressionStatement",
                        "src": "11502:15:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3795,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3763,
                          "src": "11622:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3796,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "paid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3074,
                        "src": "11622:10:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3791,
                              "name": "claim",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3763,
                              "src": "11597:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$3077_memory_ptr",
                                "typeString": "struct ShortNameClaims.Claim memory"
                              }
                            },
                            "id": 3792,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "claimant",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3072,
                            "src": "11597:14:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 3790,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4013,
                          "src": "11587:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11587:25:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 3794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11587:34:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3797,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11587:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3798,
                  "nodeType": "ExpressionStatement",
                  "src": "11587:46:11"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3800,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3759,
                        "src": "11667:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3801,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3068,
                          "src": "11676:6:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3802,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "WITHDRAWN",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11676:16:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3068",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3799,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3117,
                      "src": "11648:18:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3068_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3803,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11648:45:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3804,
                  "nodeType": "EmitStatement",
                  "src": "11643:50:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "11703:22:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3805,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "11710:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3807,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3806,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3759,
                        "src": "11717:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11710:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3809,
                  "nodeType": "ExpressionStatement",
                  "src": "11703:22:11"
                }
              ]
            },
            "documentation": "@dev Withdraws a claim and refunds the claimant.\n     Callable only by the claimant, at any time.\n@param claimId The ID of the claim to withdraw.",
            "id": 3811,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "withdrawClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3759,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3811,
                  "src": "11285:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3758,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11285:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11284:17:11"
            },
            "returnParameters": {
              "id": 3761,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11311:0:11"
            },
            "scope": 4014,
            "src": "11262:470:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3932,
              "nodeType": "Block",
              "src": "11869:772:11",
              "statements": [
                {
                  "assignments": [
                    3827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3827,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 3932,
                      "src": "11879:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3826,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11879:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3831,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3828,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "11890:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "id": 3829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "strlen",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4320,
                      "src": "11890:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_string_memory_ptr_$",
                        "typeString": "function (string memory) pure returns (uint256)"
                      }
                    },
                    "id": 3830,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11890:16:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11879:27:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3839,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3835,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3833,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3827,
                            "src": "11924:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "33",
                            "id": 3834,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11931:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          },
                          "src": "11924:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3836,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3827,
                            "src": "11936:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "36",
                            "id": 3837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11943:1:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          },
                          "src": "11936:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11924:20:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3832,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12920,
                      "src": "11916:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11916:29:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3841,
                  "nodeType": "ExpressionStatement",
                  "src": "11916:29:11"
                },
                {
                  "assignments": [
                    3843
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3843,
                      "name": "claimId",
                      "nodeType": "VariableDeclaration",
                      "scope": 3932,
                      "src": "11956:15:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3842,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11956:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3850,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3845,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "11989:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3846,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3815,
                        "src": "11998:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3847,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3817,
                        "src": "12004:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3848,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3819,
                        "src": "12014:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3844,
                      "name": "computeClaimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3282,
                      "src": "11974:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory,bytes memory,address,string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3849,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11974:46:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11956:64:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3857,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3852,
                              "name": "claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3089,
                              "src": "12038:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                              }
                            },
                            "id": 3854,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3853,
                              "name": "claimId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3843,
                              "src": "12045:7:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12038:15:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3077_storage",
                              "typeString": "struct ShortNameClaims.Claim storage ref"
                            }
                          },
                          "id": 3855,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3074,
                          "src": "12038:20:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12062:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12038:25:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d20616c7265616479207375626d6974746564",
                        "id": 3858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12065:25:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_591d59dbdd5d56f533893d647aa66033850e014e63ebafafca510867c25a75f0",
                          "typeString": "literal_string \"Claim already submitted\""
                        },
                        "value": "Claim already submitted"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_591d59dbdd5d56f533893d647aa66033850e014e63ebafafca510867c25a75f0",
                          "typeString": "literal_string \"Claim already submitted\""
                        }
                      ],
                      "id": 3851,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "12030:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12030:61:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3860,
                  "nodeType": "ExpressionStatement",
                  "src": "12030:61:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3870,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3864,
                                    "name": "name",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3815,
                                    "src": "12189:4:11",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 3865,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12195:1:11",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 3863,
                                  "name": "getLabel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3999,
                                  "src": "12180:8:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_string_memory_ptr_$",
                                    "typeString": "function (bytes memory,uint256) pure returns (string memory)"
                                  }
                                },
                                "id": 3866,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12180:17:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 3862,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12174:5:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3867,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12174:24:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12174:31:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12209:1:11",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12174:36:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d65206d757374206265206120324c44",
                        "id": 3871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12212:20:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_6ed7f5d41b4a8a6806d1f34688c22dfc0ac87b958b392074b05577432bd90d7d",
                          "typeString": "literal_string \"Name must be a 2LD\""
                        },
                        "value": "Name must be a 2LD"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_6ed7f5d41b4a8a6806d1f34688c22dfc0ac87b958b392074b05577432bd90d7d",
                          "typeString": "literal_string \"Name must be a 2LD\""
                        }
                      ],
                      "id": 3861,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "12166:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3872,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12166:67:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3873,
                  "nodeType": "ExpressionStatement",
                  "src": "12166:67:11"
                },
                {
                  "assignments": [
                    3875
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3875,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 3932,
                      "src": "12244:10:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3874,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12244:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3879,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3877,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "12270:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3876,
                      "name": "getClaimCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3297,
                      "src": "12257:12:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) view returns (uint256)"
                      }
                    },
                    "id": 3878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12257:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12244:34:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3884,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3881,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12917,
                            "src": "12296:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3882,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12296:9:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3883,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3875,
                          "src": "12309:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12296:18:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e73756666696369656e742066756e647320666f72207265736572766174696f6e",
                        "id": 3885,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12316:36:11",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8daa7cdbe4484bc420fabe6749f95ade6afb578aa8d3654b1f99b8211c12d81f",
                          "typeString": "literal_string \"Insufficient funds for reservation\""
                        },
                        "value": "Insufficient funds for reservation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8daa7cdbe4484bc420fabe6749f95ade6afb578aa8d3654b1f99b8211c12d81f",
                          "typeString": "literal_string \"Insufficient funds for reservation\""
                        }
                      ],
                      "id": 3880,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12920,
                        12921
                      ],
                      "referencedDeclaration": 12921,
                      "src": "12288:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3886,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12288:65:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3887,
                  "nodeType": "ExpressionStatement",
                  "src": "12288:65:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3888,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12917,
                        "src": "12366:3:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12366:9:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3890,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3875,
                      "src": "12378:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12366:17:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3904,
                  "nodeType": "IfStatement",
                  "src": "12363:85:11",
                  "trueBody": {
                    "id": 3903,
                    "nodeType": "Block",
                    "src": "12385:63:11",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3900,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3897,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12917,
                                  "src": "12419:3:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3898,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "12419:9:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3899,
                                "name": "price",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3875,
                                "src": "12431:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12419:17:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3892,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12917,
                                "src": "12399:3:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "12399:10:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3896,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12399:19:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3901,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12399:38:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3902,
                        "nodeType": "ExpressionStatement",
                        "src": "12399:38:11"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3919,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3905,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "12458:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3077_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3907,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3906,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3843,
                        "src": "12465:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12458:15:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3911,
                                  "name": "claimed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3813,
                                  "src": "12498:7:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 3910,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12492:5:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 3912,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12492:14:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 3909,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12911,
                            "src": "12482:9:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 3913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12482:25:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3914,
                          "name": "claimant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3817,
                          "src": "12509:8:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3915,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3875,
                          "src": "12519:5:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3916,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3068,
                            "src": "12526:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$3068_$",
                              "typeString": "type(enum ShortNameClaims.Status)"
                            }
                          },
                          "id": 3917,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "PENDING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12526:14:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$3068",
                            "typeString": "enum ShortNameClaims.Status"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_enum$_Status_$3068",
                            "typeString": "enum ShortNameClaims.Status"
                          }
                        ],
                        "id": 3908,
                        "name": "Claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3077,
                        "src": "12476:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Claim_$3077_storage_ptr_$",
                          "typeString": "type(struct ShortNameClaims.Claim storage pointer)"
                        }
                      },
                      "id": 3918,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12476:65:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3077_memory",
                        "typeString": "struct ShortNameClaims.Claim memory"
                      }
                    },
                    "src": "12458:83:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3077_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "id": 3920,
                  "nodeType": "ExpressionStatement",
                  "src": "12458:83:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "12551:15:11",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3921,
                      "name": "pendingClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3095,
                      "src": "12551:13:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3923,
                  "nodeType": "ExpressionStatement",
                  "src": "12551:15:11"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3925,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3813,
                        "src": "12596:7:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3926,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3815,
                        "src": "12605:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3927,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3875,
                        "src": "12611:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3928,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3817,
                        "src": "12618:8:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3929,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3819,
                        "src": "12628:5:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3924,
                      "name": "ClaimSubmitted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3111,
                      "src": "12581:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_bytes_memory_ptr_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes memory,uint256,address,string memory)"
                      }
                    },
                    "id": 3930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12581:53:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3931,
                  "nodeType": "EmitStatement",
                  "src": "12576:58:11"
                }
              ]
            },
            "documentation": null,
            "id": 3933,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3822,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3063,
                      "src": "11857:5:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3063_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3823,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "11857:10:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3063",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3824,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3821,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3192,
                  "src": "11849:7:11",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3063_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11849:19:11"
              }
            ],
            "name": "handleClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3820,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3813,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11759:21:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3812,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11759:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3815,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11782:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3814,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "11782:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3817,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11801:16:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3816,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11801:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3819,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3933,
                  "src": "11819:19:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3818,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11819:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11758:81:11"
            },
            "returnParameters": {
              "id": 3825,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11869:0:11"
            },
            "scope": 4014,
            "src": "11738:903:11",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3998,
              "nodeType": "Block",
              "src": "12731:405:11",
              "statements": [
                {
                  "assignments": [
                    3943
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3943,
                      "name": "offset",
                      "nodeType": "VariableDeclaration",
                      "scope": 3998,
                      "src": "12780:11:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3942,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12780:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3945,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 3944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "12794:1:11",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12780:15:11"
                },
                {
                  "body": {
                    "id": 3972,
                    "nodeType": "Block",
                    "src": "12835:110:11",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3959,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3956,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3943,
                            "src": "12852:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3957,
                              "name": "name",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3935,
                              "src": "12862:4:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 3958,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12862:11:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12852:21:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 3962,
                        "nodeType": "IfStatement",
                        "src": "12849:35:11",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 3960,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12882:2:11",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          },
                          "functionReturnParameters": 3941,
                          "id": 3961,
                          "nodeType": "Return",
                          "src": "12875:9:11"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 3963,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3943,
                            "src": "12898:6:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 3969,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3966,
                                  "name": "offset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3943,
                                  "src": "12923:6:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3964,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3935,
                                  "src": "12908:4:11",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "id": 3965,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "readUint8",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 5298,
                                "src": "12908:14:11",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
                                  "typeString": "function (bytes memory,uint256) pure returns (uint8)"
                                }
                              },
                              "id": 3967,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12908:22:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 3968,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12933:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "12908:26:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "12898:36:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3971,
                        "nodeType": "ExpressionStatement",
                        "src": "12898:36:11"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3952,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3950,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3947,
                      "src": "12821:1:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3951,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3937,
                      "src": "12825:3:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12821:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3973,
                  "initializationExpression": {
                    "assignments": [
                      3947
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3947,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3973,
                        "src": "12809:6:11",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3946,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12809:4:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3949,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3948,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12818:1:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12809:10:11"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12830:3:11",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3953,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3947,
                        "src": "12830:1:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3955,
                    "nodeType": "ExpressionStatement",
                    "src": "12830:3:11"
                  },
                  "nodeType": "ForStatement",
                  "src": "12805:140:11"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3977,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3974,
                      "name": "offset",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3943,
                      "src": "12998:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3975,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3935,
                        "src": "13008:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 3976,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13008:11:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12998:21:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3980,
                  "nodeType": "IfStatement",
                  "src": "12995:35:11",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "",
                      "id": 3978,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13028:2:11",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                        "typeString": "literal_string \"\""
                      },
                      "value": ""
                    },
                    "functionReturnParameters": 3941,
                    "id": 3979,
                    "nodeType": "Return",
                    "src": "13021:9:11"
                  }
                },
                {
                  "assignments": [
                    3982
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3982,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 3998,
                      "src": "13040:8:11",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3981,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13040:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3987,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3985,
                        "name": "offset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3943,
                        "src": "13066:6:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3983,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3935,
                        "src": "13051:4:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 3984,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5298,
                      "src": "13051:14:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$bound_to$_t_bytes_memory_ptr_$",
                        "typeString": "function (bytes memory,uint256) pure returns (uint8)"
                      }
                    },
                    "id": 3986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13051:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13040:33:11"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3993,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 3991,
                              "name": "offset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3943,
                              "src": "13112:6:11",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 3992,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13121:1:11",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "13112:10:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3994,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3982,
                            "src": "13124:3:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3989,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3935,
                            "src": "13097:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3990,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "substring",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5489,
                          "src": "13097:14:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$bound_to$_t_bytes_memory_ptr_$",
                            "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)"
                          }
                        },
                        "id": 3995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13097:31:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13090:6:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": "string"
                    },
                    "id": 3996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13090:39:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 3941,
                  "id": 3997,
                  "nodeType": "Return",
                  "src": "13083:46:11"
                }
              ]
            },
            "documentation": null,
            "id": 3999,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLabel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3935,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3999,
                  "src": "12665:17:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3934,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "12665:5:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3937,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 3999,
                  "src": "12684:8:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3936,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12684:4:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12664:29:11"
            },
            "returnParameters": {
              "id": 3941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3940,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3999,
                  "src": "12716:13:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3939,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "12716:6:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12715:15:11"
            },
            "scope": 4014,
            "src": "12647:489:11",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4012,
              "nodeType": "Block",
              "src": "13214:46:11",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4008,
                            "name": "addr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4001,
                            "src": "13247:4:11",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 4007,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13239:7:11",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": "uint160"
                        },
                        "id": 4009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13239:13:11",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 4006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13231:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 4010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13231:22:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 4005,
                  "id": 4011,
                  "nodeType": "Return",
                  "src": "13224:29:11"
                }
              ]
            },
            "documentation": null,
            "id": 4013,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toPayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4001,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4013,
                  "src": "13161:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4000,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13161:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13160:14:11"
            },
            "returnParameters": {
              "id": 4005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4004,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4013,
                  "src": "13197:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 4003,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13197:15:11",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13196:17:11"
            },
            "scope": 4014,
            "src": "13142:118:11",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4015,
        "src": "1134:12128:11"
      }
    ],
    "src": "0:13263:11"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.8+commit.23d335f2.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.13",
  "updatedAt": "2020-04-06T10:03:41.512Z",
  "devdoc": {
    "details": "ShortNameClaims is a contract that permits people to register claims     for short (3-6 character) ENS names ahead of the auction process. *      Anyone with a DNS name registered before January 1, 2019, may use this     name to support a claim for a matching ENS name. In the event that     multiple claimants request the same name, the name will be assigned to     the oldest registered DNS name. *      Claims may be submitted by calling `submitExactClaim`,     `submitCombinedClaim` or `submitPrefixClaim` as appropriate. *      Claims require lodging a deposit equivalent to 365 days' registration of     the name. If the claim is approved, this deposit is spent, and the name     is registered for the claimant for 365 days. If the claim is declined,     the deposit will be returned.",
    "methods": {
      "closeClaims()": {
        "details": "Closes the claim submission period.     Callable only by the owner."
      },
      "computeClaimId(string,bytes,address,string)": {
        "details": "Computes the claim ID for a submitted claim, so it can be looked up     using `claims`.",
        "params": {
          "claimant": "The address making the claim.",
          "claimed": "The name being claimed (eg, 'foo')",
          "dnsname": "The DNS-encoded name supporting the claim (eg, 'foo.test')"
        },
        "return": "The claim ID."
      },
      "destroy()": {
        "details": "Cleans up the contract, after all claims are resolved.     Callable only by the owner, and only in final state."
      },
      "getClaimCost(string)": {
        "details": "Returns the cost associated with placing a claim.",
        "params": {
          "claimed": "The name being claimed."
        },
        "return": "The cost in wei for this claim."
      },
      "ratifyClaims()": {
        "details": "Ratifies the current set of claims.     Ratification freezes the claims and their resolutions, and permits     them to be acted on."
      },
      "resolveClaim(bytes32)": {
        "details": "Resolves a claim. Callable by anyone, only in the final phase.     Resolving a claim either registers the name or refunds the claimant.",
        "params": {
          "claimId": "The claim ID to resolve."
        }
      },
      "resolveClaims(bytes32[])": {
        "details": "Resolves multiple claims. Callable by anyone, only in the final phase.",
        "params": {
          "claimIds": "A list of claim IDs to resolve."
        }
      },
      "setClaimStatus(bytes32,bool)": {
        "details": "Sets the status of a claim to either APPROVED or DECLINED.     Callable only during the review phase, and only by the owner or     ratifier.",
        "params": {
          "approved": "True if the claim is approved, false if it is declined.",
          "claimId": "The claim to set the status of."
        }
      },
      "setClaimStatuses(bytes32[],bytes32[])": {
        "details": "Sets the status of multiple claims. Callable only during the review     phase, and only by the owner or ratifier.",
        "params": {
          "approved": "A list of approved claim IDs.",
          "declined": "A list of declined claim IDs."
        }
      },
      "submitCombinedClaim(bytes,address,string)": {
        "details": "Submits a claim for match on name+tld (eg, foo.tv -> footv).     Claimants must provide an amount of ether equal to 365 days'     registration cost; call `getClaimCost` to determine this amount.     Claimants should supply a little extra in case of variation in price;     any excess will be returned to the sender.",
        "params": {
          "claimant": "The address of the claimant.",
          "email": "An email address for correspondence regarding the claim.",
          "name": "The DNS-encoded name of the domain being used to support the            claim."
        }
      },
      "submitExactClaim(bytes,address,string)": {
        "details": "Submits a claim for an exact match (eg, foo.test -> foo.eth).     Claimants must provide an amount of ether equal to 365 days'     registration cost; call `getClaimCost` to determine this amount.     Claimants should supply a little extra in case of variation in price;     any excess will be returned to the sender.",
        "params": {
          "claimant": "The address of the claimant.",
          "email": "An email address for correspondence regarding the claim.",
          "name": "The DNS-encoded name of the domain being used to support the            claim."
        }
      },
      "submitPrefixClaim(bytes,address,string)": {
        "details": "Submits a claim for prefix match (eg, fooeth.test -> foo.eth).     Claimants must provide an amount of ether equal to 365 days'     registration cost; call `getClaimCost` to determine this amount.     Claimants should supply a little extra in case of variation in price;     any excess will be returned to the sender.",
        "params": {
          "claimant": "The address of the claimant.",
          "email": "An email address for correspondence regarding the claim.",
          "name": "The DNS-encoded name of the domain being used to support the            claim."
        }
      },
      "withdrawClaim(bytes32)": {
        "details": "Withdraws a claim and refunds the claimant.     Callable only by the claimant, at any time.",
        "params": {
          "claimId": "The ID of the claim to withdraw."
        }
      }
    }
  },
  "userdoc": {
    "methods": {}
  }
}