{
  "contractName": "ShortNameClaims",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract PriceOracle",
          "name": "_priceOracle",
          "type": "address"
        },
        {
          "internalType": "contract BaseRegistrar",
          "name": "_registrar",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_ratifier",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum ShortNameClaims.Status",
          "name": "status",
          "type": "uint8"
        }
      ],
      "name": "ClaimStatusChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "claimed",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "dnsname",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "paid",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "email",
          "type": "string"
        }
      ],
      "name": "ClaimSubmitted",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "REGISTRATION_PERIOD",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "claims",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "labelHash",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "paid",
          "type": "uint256"
        },
        {
          "internalType": "enum ShortNameClaims.Status",
          "name": "status",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "pendingClaims",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "phase",
      "outputs": [
        {
          "internalType": "enum ShortNameClaims.Phase",
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "priceOracle",
      "outputs": [
        {
          "internalType": "contract PriceOracle",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registrar",
      "outputs": [
        {
          "internalType": "contract BaseRegistrar",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "unresolvedClaims",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "addOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "removeOwner",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "ratifier",
          "type": "address"
        }
      ],
      "name": "addRatifier",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "ratifier",
          "type": "address"
        }
      ],
      "name": "removeRatifier",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "string",
          "name": "claimed",
          "type": "string"
        },
        {
          "internalType": "bytes",
          "name": "dnsname",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "email",
          "type": "string"
        }
      ],
      "name": "computeClaimId",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "string",
          "name": "claimed",
          "type": "string"
        }
      ],
      "name": "getClaimCost",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes",
          "name": "name",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "email",
          "type": "string"
        }
      ],
      "name": "submitExactClaim",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes",
          "name": "name",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "email",
          "type": "string"
        }
      ],
      "name": "submitCombinedClaim",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes",
          "name": "name",
          "type": "bytes"
        },
        {
          "internalType": "address",
          "name": "claimant",
          "type": "address"
        },
        {
          "internalType": "string",
          "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": [
        {
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setClaimStatus",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "approved",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes32[]",
          "name": "declined",
          "type": "bytes32[]"
        }
      ],
      "name": "setClaimStatuses",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        }
      ],
      "name": "resolveClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "claimIds",
          "type": "bytes32[]"
        }
      ],
      "name": "resolveClaims",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        }
      ],
      "name": "withdrawClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract PriceOracle\",\"name\":\"_priceOracle\",\"type\":\"address\"},{\"internalType\":\"contract BaseRegistrar\",\"name\":\"_registrar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_ratifier\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum ShortNameClaims.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"ClaimStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"claimed\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"dnsname\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"}],\"name\":\"ClaimSubmitted\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"REGISTRATION_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"ratifier\",\"type\":\"address\"}],\"name\":\"addRatifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"claims\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"labelHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"paid\",\"type\":\"uint256\"},{\"internalType\":\"enum ShortNameClaims.Status\",\"name\":\"status\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"closeClaims\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"string\",\"name\":\"claimed\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"dnsname\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"}],\"name\":\"computeClaimId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"string\",\"name\":\"claimed\",\"type\":\"string\"}],\"name\":\"getClaimCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"pendingClaims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"phase\",\"outputs\":[{\"internalType\":\"enum ShortNameClaims.Phase\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"priceOracle\",\"outputs\":[{\"internalType\":\"contract PriceOracle\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"ratifyClaims\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registrar\",\"outputs\":[{\"internalType\":\"contract BaseRegistrar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"ratifier\",\"type\":\"address\"}],\"name\":\"removeRatifier\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"resolveClaim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"claimIds\",\"type\":\"bytes32[]\"}],\"name\":\"resolveClaims\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setClaimStatus\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"approved\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"declined\",\"type\":\"bytes32[]\"}],\"name\":\"setClaimStatuses\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"}],\"name\":\"submitCombinedClaim\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"}],\"name\":\"submitExactClaim\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"claimant\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"email\",\"type\":\"string\"}],\"name\":\"submitPrefixClaim\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"unresolvedClaims\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"claimId\",\"type\":\"bytes32\"}],\"name\":\"withdrawClaim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"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\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/ethregistrar/contracts/BaseRegistrar.sol\":{\"keccak256\":\"0x8f8f496603d868fdf3ddf31c54fb6eed6a865f2adbf568fe0b3d999d4fa667f4\",\"urls\":[\"bzz-raw://40c16e89553e4af1dad651bdb63208f5e20429e0e5dbd716eb0cad14eafb96be\",\"dweb:/ipfs/QmYdCBZHRwRgKPRmCvghw7hbdvqqcJJCKg5JTtzWWwoSQP\"]},\"/Users/makoto/work/ens/ethregistrar/contracts/PriceOracle.sol\":{\"keccak256\":\"0x9e21289a1fa35c8075409acca1de56450a24a139c6c905f789cd435409468a4d\",\"urls\":[\"bzz-raw://129cad7cc78129fde500232e787b191ea5239a94a09bdc69e63fd09706f42cba\",\"dweb:/ipfs/Qmcz3WGiEMhZCpwwixdYTNk7G4rdrH7xcX2PEq1RriJqPy\"]},\"/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol\":{\"keccak256\":\"0x5e31a8e713532343578f684b0a8eb71804dfa81dfb94aae6fcf0bee18fc7bd27\",\"urls\":[\"bzz-raw://a7c6a6a22b7e2b9a1279916d01b96520ac7b1d3d977c5d6bff52fc8dda812248\",\"dweb:/ipfs/QmRdxwo1F1EJo6UngwG4QVZrBnp7AyWCH27TXke4q9sy7Z\"]},\"/Users/makoto/work/ens/ethregistrar/contracts/StringUtils.sol\":{\"keccak256\":\"0xb995b040adc3f1f27173ecf389bf69360e45989e2b4d8a503dec8ac0cc10cad3\",\"urls\":[\"bzz-raw://4c7f31b51771c63b0a81b5622abd4f5e2414e74e22ee94eb106564b725f420ab\",\"dweb:/ipfs/QmRcUEFRi2X7SyxAURDngiCxQQ8LENHdBbgFGXzAqXJZ1c\"]},\"@ensdomains/buffer/contracts/Buffer.sol\":{\"keccak256\":\"0x1264adbd06f6e05b04539bb225063a988b7fa90343d068de60cdde6cfb6fa92d\",\"urls\":[\"bzz-raw://9362e5c8306c61ad32144028b5b6c3a90ff868c86e814d26f096a59243598ed2\",\"dweb:/ipfs/QmQPRLNQu1iN6KHKPbhkGvRZnsKgjddjzEza8Q8oJ5FfwH\"]},\"@ensdomains/dnssec-oracle/contracts/BytesUtils.sol\":{\"keccak256\":\"0x4014e689ef4a36cbf7103d88286abd2a7c560c2a7af99a561c33c61bc78be27a\",\"urls\":[\"bzz-raw://65e6c215e270ca999089bafa672420a7ef03e9f511dedf6aa4e68857f7dff0fe\",\"dweb:/ipfs/QmQVArMTrJwx6xH49mUMCrr6Jdq6ym6f4zRPPpk7y1jK6J\"]},\"@ensdomains/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzz-raw://b3de1882a4a1a1b13c27ee6dc04cc58c34ac392c80cad507de2cdfa8c02712fe\",\"dweb:/ipfs/QmeKcaBF8QdJjXiqFrPJkAtK3et5kUL8XJrnHjwhAThRMT\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0x659ba0f9a3392cd50a8a5fafaf5dfd8c6a0878f6a4613bceff4e90dceddcd865\",\"urls\":[\"bzz-raw://4ca6617349a9b36fd82e9442a8e445ce9021a174e4399d1457ddc894ee3f5df3\",\"dweb:/ipfs/QmcmyB4cNazZ1sw963Afaijt67M9bDgwmGXCgQajGTD4tm\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xbbb6159006ae3639daea09f7d63987816d6cf3a99f52af919363e025d3abf3b8\",\"urls\":[\"bzz-raw://35e7d742ee71461779df12a0ab1ad4701144d98eb6401182838c8daf40b008dd\",\"dweb:/ipfs/QmY4t7pxcX2cfk6VsGJWZLBgoKMpRctY8X1HPxykLjptSi\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0x980de387a1a020a498f53d00f89fecebb12c949a17e8f160093c0303ede2b786\",\"urls\":[\"bzz-raw://f07a2c393caa85f62f0aaa461e3edd50aa59371d4209778ba0558d7f8b4b856c\",\"dweb:/ipfs/QmeN3ZiYGSjCnQFeYaJNgoXjF9eDue1g3e9pqManRkeBtV\"]},\"openzeppelin-solidity/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x1f059ee943273719130df645fa38069b792988e8b732585528d5b1265f5aa046\",\"urls\":[\"bzz-raw://31e4d99091a83a42a6ea14d74ceae2ec3ffb2905c7ee07358875af72ea188333\",\"dweb:/ipfs/Qmf7nHc6BwhbyawapCVRZHzhBHNoA8ftpQWmGSyToVKVzN\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b50604051620033af380380620033af833981810160405260608110156200003757600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860006101000a81548160ff02191690836002811115620000fe57fe5b02179055506200011e3360006200014260201b620025621790919060201c565b620001398160016200014260201b620025621790919060201c565b5050506200028b565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156200017d57600080fd5b6200018f8282620001f860201b60201c565b156200019a57600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200023457600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b613114806200029b6000396000f3fe60806040526004361061014b5760003560e01c806384fd49c9116100b6578063c9fa06631161006f578063c9fa066314610aa6578063cfee88db14610b81578063d4f6841d14610b98578063e0f5409714610c1e578063eff0f59214610c49578063fb2f72d014610ce75761014b565b806384fd49c9146106385780639d6017471461064f578063a1169b7714610879578063a8712e8c146108c0578063b1c9fe6e14610a32578063c1203cb814610a6b5761014b565b80634d4de844116101085780634d4de8441461031c5780635a41ef3a1461048e57806365e3f8fa146104b95780637065cb48146105955780637cb68aa2146105e657806383197ef0146106215761014b565b8063173825d9146101505780632630c12f146101a15780632b20e397146101f85780633e08e84d1461024f5780633e6be3d2146102a057806341e6af01146102cb575b600080fd5b34801561015c57600080fd5b5061019f6004803603602081101561017357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156101ad57600080fd5b506101b6610ef6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020457600080fd5b5061020d610f1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025b57600080fd5b5061029e6004803603602081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f42565b005b3480156102ac57600080fd5b506102b5610fdf565b6040518082815260200191505060405180910390f35b3480156102d757600080fd5b5061031a600480360360208110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe5565b005b61048c6004803603606081101561033257600080fd5b810190808035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561040657600080fd5b82018360208201111561041857600080fd5b8035906020019184600183028401116401000000008311171561043a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611082565b005b34801561049a57600080fd5b506104a3611113565b6040518082815260200191505060405180910390f35b3480156104c557600080fd5b5061057f600480360360208110156104dc57600080fd5b81019080803590602001906401000000008111156104f957600080fd5b82018360208201111561050b57600080fd5b8035906020019184600183028401116401000000008311171561052d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611119565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105e4600480360360208110156105b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124a565b005b3480156105f257600080fd5b5061061f6004803603602081101561060957600080fd5b81019080803590602001909291905050506112e7565b005b34801561062d57600080fd5b50610636611534565b005b34801561064457600080fd5b5061064d611686565b005b34801561065b57600080fd5b506108636004803603608081101561067257600080fd5b810190808035906020019064010000000081111561068f57600080fd5b8201836020820111156106a157600080fd5b803590602001918460018302840111640100000000831117156106c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561072657600080fd5b82018360208201111561073857600080fd5b8035906020019184600183028401116401000000008311171561075a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156107dd57600080fd5b8201836020820111156107ef57600080fd5b8035906020019184600183028401116401000000008311171561081157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506117de565b6040518082815260200191505060405180910390f35b34801561088557600080fd5b506108be6004803603604081101561089c57600080fd5b810190808035906020019092919080351515906020019092919050505061186d565b005b610a30600480360360608110156108d657600080fd5b81019080803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184600183028401116401000000008311171561092757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156109aa57600080fd5b8201836020820111156109bc57600080fd5b803590602001918460018302840111640100000000831117156109de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c19565b005b348015610a3e57600080fd5b50610a47611c3a565b60405180826002811115610a5757fe5b60ff16815260200191505060405180910390f35b348015610a7757600080fd5b50610aa460048036036020811015610a8e57600080fd5b8101908080359060200190929190505050611c4d565b005b348015610ab257600080fd5b50610b7f60048036036040811015610ac957600080fd5b8101908080359060200190640100000000811115610ae657600080fd5b820183602082011115610af857600080fd5b80359060200191846020830284011164010000000083111715610b1a57600080fd5b909192939192939080359060200190640100000000811115610b3b57600080fd5b820183602082011115610b4d57600080fd5b80359060200191846020830284011164010000000083111715610b6f57600080fd5b909192939192939050505061213d565b005b348015610b8d57600080fd5b50610b966121bb565b005b348015610ba457600080fd5b50610c1c60048036036020811015610bbb57600080fd5b8101908080359060200190640100000000811115610bd857600080fd5b820183602082011115610bea57600080fd5b80359060200191846020830284011164010000000083111715610c0c57600080fd5b9091929391929390505050612304565b005b348015610c2a57600080fd5b50610c33612342565b6040518082815260200191505060405180910390f35b348015610c5557600080fd5b50610c8260048036036020811015610c6c57600080fd5b810190808035906020019092919050505061234a565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001826003811115610cd057fe5b60ff16815260200194505050505060405180910390f35b610e5760048036036060811015610cfd57600080fd5b8101908080359060200190640100000000811115610d1a57600080fd5b820183602082011115610d2c57600080fd5b80359060200191846001830284011164010000000083111715610d4e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610dd157600080fd5b820183602082011115610de357600080fd5b80359060200191846001830284011164010000000083111715610e0557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506123a7565b005b610e6d33600061242590919063ffffffff16565b610edf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b610ef38160006124b790919063ffffffff16565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f5633600161242590919063ffffffff16565b610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b610fdc8160016124b790919063ffffffff16565b50565b60065481565b610ff933600161242590919063ffffffff16565b61106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b61107f81600161256290919063ffffffff16565b50565b606061108f84600061260e565b90506110df60038251036040518060400160405280600381526020017f6574680000000000000000000000000000000000000000000000000000000000815250836126cc9092919063ffffffff16565b6110e857600080fd5b61110d61110560006003845103846126f69092919063ffffffff16565b858585612769565b50505050565b60075481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350e9a7158360006301e133806040518463ffffffff1660e01b81526004018080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111bc5780820151818401526020810190506111a1565b50505050905090810190601f1680156111e95780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d602081101561123257600080fd5b81019080805190602001909291905050509050919050565b61125e33600061242590919063ffffffff16565b6112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b6112e481600061256290919063ffffffff16565b50565b6112ef613057565b60046000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff16600381111561139557fe5b60038111156113a057fe5b815250509050806020015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113e257600080fd5b600060038111156113ef57fe5b816060015160038111156113ff57fe5b141561141d5760066000815480929190600190039190505550611431565b600760008154809291906001900391905055505b61143e8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015611487573d6000803e3d6000fd5b50817f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b6003604051808260038111156114bc57fe5b60ff16815260200191505060405180910390a2600460008381526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff021916905550505050565b61154833600061242590919063ffffffff16565b6115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b60028060028111156115c857fe5b600860009054906101000a900460ff1660028111156115e357fe5b14611656576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b60006007541461166557600080fd5b61166e33612cb4565b73ffffffffffffffffffffffffffffffffffffffff16ff5b61169a33600161242590919063ffffffff16565b61170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b600180600281111561171a57fe5b600860009054906101000a900460ff16600281111561173557fe5b146117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6000600654146117b757600080fd5b6002600860006101000a81548160ff021916908360028111156117d657fe5b021790555050565b600084805190602001208480519060200120848480519060200120604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b600180600281111561187b57fe5b600860009054906101000a900460ff16600281111561189657fe5b14611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b61191d33600061242590919063ffffffff16565b80611938575061193733600161242590919063ffffffff16565b5b61194157600080fd5b611949613057565b60046000858152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff1660038111156119ef57fe5b60038111156119fa57fe5b8152505090506000816040015111611a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60006003811115611a8757fe5b81606001516003811115611a9757fe5b1415611ac75760066000815480929190600190039190505550600760008154809291906001019190505550611b1c565b60016003811115611ad457fe5b81606001516003811115611ae457fe5b1415611b1b576000600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b8215611b8257600560008260000151815260200190815260200160002060009054906101000a900460ff1615611b5157600080fd5b6001600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600083611b90576002611b93565b60015b9050806004600087815260200190815260200160002060030160006101000a81548160ff02191690836003811115611bc757fe5b0217905550847f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b8260405180826003811115611bff57fe5b60ff16815260200191505060405180910390a25050505050565b6060611c2684600061260e565b9050611c3481858585612769565b50505050565b600860009054906101000a900460ff1681565b6002806002811115611c5b57fe5b600860009054906101000a900460ff166002811115611c7657fe5b14611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b611cf1613057565b60046000848152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff166003811115611d9757fe5b6003811115611da257fe5b8152505090506000816040015111611e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60016003811115611e2f57fe5b81606001516003811115611e3f57fe5b141561203b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fca247ac826000015160001c83602001516301e133806040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b505050506040513d6020811015611f2f57600080fd5b810190808051906020019092919050505050611fec600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fac57600080fd5b505afa158015611fc0573d6000803e3d6000fd5b505050506040513d6020811015611fd657600080fd5b8101908080519060200190929190505050612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015612035573d6000803e3d6000fd5b506120c4565b6002600381111561204857fe5b8160600151600381111561205857fe5b14156120ba5761206b8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f193505050501580156120b4573d6000803e3d6000fd5b506120c3565b60006120c257fe5b5b5b60076000815480929190600190039190505550600460008481526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff02191690555050505050565b60008090505b848490508110156121785761216b85858381811061215d57fe5b90506020020135600161186d565b8080600101915050612143565b5060008090505b828290508110156121b4576121a783838381811061219957fe5b90506020020135600061186d565b808060010191505061217f565b5050505050565b6121cf33600061242590919063ffffffff16565b612241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b600080600281111561224f57fe5b600860009054906101000a900460ff16600281111561226a57fe5b146122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6001600860006101000a81548160ff021916908360028111156122fc57fe5b021790555050565b60008090505b8282905081101561233d5761233083838381811061232457fe5b90506020020135611c4d565b808060010191505061230a565b505050565b6301e1338081565b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16905084565b60606123b484600061260e565b905060606123c385600161260e565b90506123cd6130a3565b6123e4825184510182612cbe90919063ffffffff16565b506123f88382612d1290919063ffffffff16565b5061240c8282612d1290919063ffffffff16565b5061241d8160000151878787612769565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561246057600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124f157600080fd5b6124fb8282612425565b61250457600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561259c57600080fd5b6125a68282612425565b156125b057600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600080905060008090505b8381101561266e57845182106126445760405180602001604052806000815250925050506126c6565b60016126598387612d3490919063ffffffff16565b0160ff1682019150808060010191505061261b565b508351811061268f57604051806020016040528060008152509150506126c6565b60006126a48286612d3490919063ffffffff16565b60ff1690506126c16001830182876126f69092919063ffffffff16565b925050505b92915050565b6000815183018451101580156126ed57506126ec84848460008651612d58565b5b90509392505050565b60608351828401111561270857600080fd5b6060826040519080825280601f01601f19166020018201604052801561273d5781602001600182028038833980820191505090505b509050600080602083019150856020880101905061275c828287612d7c565b8293505050509392505050565b600080600281111561277757fe5b600860009054906101000a900460ff16600281111561279257fe5b14612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b600061281086612dc5565b905060038110158015612824575060068111155b61282d57600080fd5b600061283b878787876117de565b905060006004600083815260200190815260200160002060020154146128c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f436c61696d20616c7265616479207375626d697474656400000000000000000081525060200191505060405180910390fd5b60006128d687600261260e565b511461294a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e616d65206d757374206265206120324c44000000000000000000000000000081525060200191505060405180910390fd5b600061295588611119565b9050803410156129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130be6022913960400191505060405180910390fd5b80341115612a02573373ffffffffffffffffffffffffffffffffffffffff166108fc8234039081150290604051600060405180830381858888f19350505050158015612a00573d6000803e3d6000fd5b505b6040518060800160405280898051906020012081526020018773ffffffffffffffffffffffffffffffffffffffff16815260200182815260200160006003811115612a4957fe5b815250600460008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690836003811115612ade57fe5b02179055509050506006600081548092919060010191905055507f186f55cfb37bd38b311b8d5e8a212edf83c4d92107f48dbb7a4a5c217714eab188888389896040518080602001806020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019080838360005b83811015612b9e578082015181840152602081019050612b83565b50505050905090810190601f168015612bcb5780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015612c04578082015181840152602081019050612be9565b50505050905090810190601f168015612c315780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a15050505050505050565b6000819050919050565b612cc66130a3565b600060208381612cd257fe5b0614612ceb5760208281612ce257fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b612d1a6130a3565b612d2c83846000015151848551612f3b565b905092915050565b6000828281518110612d4257fe5b602001015160f81c60f81b60f81c905092915050565b6000612d65848484612ff4565b612d70878785612ff4565b14905095945050505050565b5b60208110612da05781518352602083019250602082019150602081039050612d7d565b60006001826020036101000a0390508019835116818551168181178652505050505050565b6000806000809050600084519050600092505b80821015612f30576000858381518110612dee57fe5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e3457600183019250612f22565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e6d57600283019250612f21565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ea657600383019250612f20565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ede57600483019250612f1f565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612f1757600583019250612f1e565b6006830192505b5b5b5b5b508280600101935050612dd8565b829350505050919050565b612f436130a3565b8251821115612f5157600080fd5b84602001518285011115612f7c57612f7b856002612f758860200151888701613017565b02613033565b5b600080865180518760208301019350808887011115612f9b5787860182525b60208701925050505b60208410612fc75780518252602082019150602081019050602084039350612fa4565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b60008351828401111561300657600080fd5b818360208601012090509392505050565b6000818311156130295782905061302d565b8190505b92915050565b6060826000015190506130468383612cbe565b506130518382612d12565b50505050565b604051806080016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000600381111561309d57fe5b81525090565b60405180604001604052806060815260200160008152509056fe496e73756666696369656e742066756e647320666f72207265736572766174696f6ea265627a7a72315820b6bde6e14dc607cd7ae19adc4a245adfd38c6cd588d0a392210fa9e95eac5ac364736f6c63430005100032",
  "deployedBytecode": "0x60806040526004361061014b5760003560e01c806384fd49c9116100b6578063c9fa06631161006f578063c9fa066314610aa6578063cfee88db14610b81578063d4f6841d14610b98578063e0f5409714610c1e578063eff0f59214610c49578063fb2f72d014610ce75761014b565b806384fd49c9146106385780639d6017471461064f578063a1169b7714610879578063a8712e8c146108c0578063b1c9fe6e14610a32578063c1203cb814610a6b5761014b565b80634d4de844116101085780634d4de8441461031c5780635a41ef3a1461048e57806365e3f8fa146104b95780637065cb48146105955780637cb68aa2146105e657806383197ef0146106215761014b565b8063173825d9146101505780632630c12f146101a15780632b20e397146101f85780633e08e84d1461024f5780633e6be3d2146102a057806341e6af01146102cb575b600080fd5b34801561015c57600080fd5b5061019f6004803603602081101561017357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156101ad57600080fd5b506101b6610ef6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020457600080fd5b5061020d610f1c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025b57600080fd5b5061029e6004803603602081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f42565b005b3480156102ac57600080fd5b506102b5610fdf565b6040518082815260200191505060405180910390f35b3480156102d757600080fd5b5061031a600480360360208110156102ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610fe5565b005b61048c6004803603606081101561033257600080fd5b810190808035906020019064010000000081111561034f57600080fd5b82018360208201111561036157600080fd5b8035906020019184600183028401116401000000008311171561038357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561040657600080fd5b82018360208201111561041857600080fd5b8035906020019184600183028401116401000000008311171561043a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611082565b005b34801561049a57600080fd5b506104a3611113565b6040518082815260200191505060405180910390f35b3480156104c557600080fd5b5061057f600480360360208110156104dc57600080fd5b81019080803590602001906401000000008111156104f957600080fd5b82018360208201111561050b57600080fd5b8035906020019184600183028401116401000000008311171561052d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611119565b6040518082815260200191505060405180910390f35b3480156105a157600080fd5b506105e4600480360360208110156105b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124a565b005b3480156105f257600080fd5b5061061f6004803603602081101561060957600080fd5b81019080803590602001909291905050506112e7565b005b34801561062d57600080fd5b50610636611534565b005b34801561064457600080fd5b5061064d611686565b005b34801561065b57600080fd5b506108636004803603608081101561067257600080fd5b810190808035906020019064010000000081111561068f57600080fd5b8201836020820111156106a157600080fd5b803590602001918460018302840111640100000000831117156106c357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561072657600080fd5b82018360208201111561073857600080fd5b8035906020019184600183028401116401000000008311171561075a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156107dd57600080fd5b8201836020820111156107ef57600080fd5b8035906020019184600183028401116401000000008311171561081157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506117de565b6040518082815260200191505060405180910390f35b34801561088557600080fd5b506108be6004803603604081101561089c57600080fd5b810190808035906020019092919080351515906020019092919050505061186d565b005b610a30600480360360608110156108d657600080fd5b81019080803590602001906401000000008111156108f357600080fd5b82018360208201111561090557600080fd5b8035906020019184600183028401116401000000008311171561092757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156109aa57600080fd5b8201836020820111156109bc57600080fd5b803590602001918460018302840111640100000000831117156109de57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c19565b005b348015610a3e57600080fd5b50610a47611c3a565b60405180826002811115610a5757fe5b60ff16815260200191505060405180910390f35b348015610a7757600080fd5b50610aa460048036036020811015610a8e57600080fd5b8101908080359060200190929190505050611c4d565b005b348015610ab257600080fd5b50610b7f60048036036040811015610ac957600080fd5b8101908080359060200190640100000000811115610ae657600080fd5b820183602082011115610af857600080fd5b80359060200191846020830284011164010000000083111715610b1a57600080fd5b909192939192939080359060200190640100000000811115610b3b57600080fd5b820183602082011115610b4d57600080fd5b80359060200191846020830284011164010000000083111715610b6f57600080fd5b909192939192939050505061213d565b005b348015610b8d57600080fd5b50610b966121bb565b005b348015610ba457600080fd5b50610c1c60048036036020811015610bbb57600080fd5b8101908080359060200190640100000000811115610bd857600080fd5b820183602082011115610bea57600080fd5b80359060200191846020830284011164010000000083111715610c0c57600080fd5b9091929391929390505050612304565b005b348015610c2a57600080fd5b50610c33612342565b6040518082815260200191505060405180910390f35b348015610c5557600080fd5b50610c8260048036036020811015610c6c57600080fd5b810190808035906020019092919050505061234a565b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001826003811115610cd057fe5b60ff16815260200194505050505060405180910390f35b610e5760048036036060811015610cfd57600080fd5b8101908080359060200190640100000000811115610d1a57600080fd5b820183602082011115610d2c57600080fd5b80359060200191846001830284011164010000000083111715610d4e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610dd157600080fd5b820183602082011115610de357600080fd5b80359060200191846001830284011164010000000083111715610e0557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506123a7565b005b610e6d33600061242590919063ffffffff16565b610edf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b610ef38160006124b790919063ffffffff16565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f5633600161242590919063ffffffff16565b610fc8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b610fdc8160016124b790919063ffffffff16565b50565b60065481565b610ff933600161242590919063ffffffff16565b61106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b61107f81600161256290919063ffffffff16565b50565b606061108f84600061260e565b90506110df60038251036040518060400160405280600381526020017f6574680000000000000000000000000000000000000000000000000000000000815250836126cc9092919063ffffffff16565b6110e857600080fd5b61110d61110560006003845103846126f69092919063ffffffff16565b858585612769565b50505050565b60075481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166350e9a7158360006301e133806040518463ffffffff1660e01b81526004018080602001848152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156111bc5780820151818401526020810190506111a1565b50505050905090810190601f1680156111e95780820380516001836020036101000a031916815260200191505b5094505050505060206040518083038186803b15801561120857600080fd5b505afa15801561121c573d6000803e3d6000fd5b505050506040513d602081101561123257600080fd5b81019080805190602001909291905050509050919050565b61125e33600061242590919063ffffffff16565b6112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b6112e481600061256290919063ffffffff16565b50565b6112ef613057565b60046000838152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff16600381111561139557fe5b60038111156113a057fe5b815250509050806020015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113e257600080fd5b600060038111156113ef57fe5b816060015160038111156113ff57fe5b141561141d5760066000815480929190600190039190505550611431565b600760008154809291906001900391905055505b61143e8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015611487573d6000803e3d6000fd5b50817f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b6003604051808260038111156114bc57fe5b60ff16815260200191505060405180910390a2600460008381526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff021916905550505050565b61154833600061242590919063ffffffff16565b6115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b60028060028111156115c857fe5b600860009054906101000a900460ff1660028111156115e357fe5b14611656576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b60006007541461166557600080fd5b61166e33612cb4565b73ffffffffffffffffffffffffffffffffffffffff16ff5b61169a33600161242590919063ffffffff16565b61170c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f43616c6c6572206d75737420626520612072617469666965720000000000000081525060200191505060405180910390fd5b600180600281111561171a57fe5b600860009054906101000a900460ff16600281111561173557fe5b146117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6000600654146117b757600080fd5b6002600860006101000a81548160ff021916908360028111156117d657fe5b021790555050565b600084805190602001208480519060200120848480519060200120604051602001808581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b600180600281111561187b57fe5b600860009054906101000a900460ff16600281111561189657fe5b14611909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b61191d33600061242590919063ffffffff16565b80611938575061193733600161242590919063ffffffff16565b5b61194157600080fd5b611949613057565b60046000858152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff1660038111156119ef57fe5b60038111156119fa57fe5b8152505090506000816040015111611a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60006003811115611a8757fe5b81606001516003811115611a9757fe5b1415611ac75760066000815480929190600190039190505550600760008154809291906001019190505550611b1c565b60016003811115611ad457fe5b81606001516003811115611ae457fe5b1415611b1b576000600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b8215611b8257600560008260000151815260200190815260200160002060009054906101000a900460ff1615611b5157600080fd5b6001600560008360000151815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600083611b90576002611b93565b60015b9050806004600087815260200190815260200160002060030160006101000a81548160ff02191690836003811115611bc757fe5b0217905550847f698a3a7f5c0bc9915a6f167e9ce03ffc660392e807cf6fd57fd9ae52063dd27b8260405180826003811115611bff57fe5b60ff16815260200191505060405180910390a25050505050565b6060611c2684600061260e565b9050611c3481858585612769565b50505050565b600860009054906101000a900460ff1681565b6002806002811115611c5b57fe5b600860009054906101000a900460ff166002811115611c7657fe5b14611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b611cf1613057565b60046000848152602001908152602001600020604051806080016040529081600082015481526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600282015481526020016003820160009054906101000a900460ff166003811115611d9757fe5b6003811115611da257fe5b8152505090506000816040015111611e22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f436c61696d206e6f7420666f756e64000000000000000000000000000000000081525060200191505060405180910390fd5b60016003811115611e2f57fe5b81606001516003811115611e3f57fe5b141561203b57600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fca247ac826000015160001c83602001516301e133806040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611f0557600080fd5b505af1158015611f19573d6000803e3d6000fd5b505050506040513d6020811015611f2f57600080fd5b810190808051906020019092919050505050611fec600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fac57600080fd5b505afa158015611fc0573d6000803e3d6000fd5b505050506040513d6020811015611fd657600080fd5b8101908080519060200190929190505050612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f19350505050158015612035573d6000803e3d6000fd5b506120c4565b6002600381111561204857fe5b8160600151600381111561205857fe5b14156120ba5761206b8160200151612cb4565b73ffffffffffffffffffffffffffffffffffffffff166108fc82604001519081150290604051600060405180830381858888f193505050501580156120b4573d6000803e3d6000fd5b506120c3565b60006120c257fe5b5b5b60076000815480929190600190039190505550600460008481526020019081526020016000206000808201600090556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560028201600090556003820160006101000a81549060ff02191690555050505050565b60008090505b848490508110156121785761216b85858381811061215d57fe5b90506020020135600161186d565b8080600101915050612143565b5060008090505b828290508110156121b4576121a783838381811061219957fe5b90506020020135600061186d565b808060010191505061217f565b5050505050565b6121cf33600061242590919063ffffffff16565b612241576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f43616c6c6572206d75737420626520616e206f776e657200000000000000000081525060200191505060405180910390fd5b600080600281111561224f57fe5b600860009054906101000a900460ff16600281111561226a57fe5b146122dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b6001600860006101000a81548160ff021916908360028111156122fc57fe5b021790555050565b60008090505b8282905081101561233d5761233083838381811061232457fe5b90506020020135611c4d565b808060010191505061230a565b505050565b6301e1338081565b60046020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030160009054906101000a900460ff16905084565b60606123b484600061260e565b905060606123c385600161260e565b90506123cd6130a3565b6123e4825184510182612cbe90919063ffffffff16565b506123f88382612d1290919063ffffffff16565b5061240c8282612d1290919063ffffffff16565b5061241d8160000151878787612769565b505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561246057600080fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124f157600080fd5b6124fb8282612425565b61250457600080fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561259c57600080fd5b6125a68282612425565b156125b057600080fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6060600080905060008090505b8381101561266e57845182106126445760405180602001604052806000815250925050506126c6565b60016126598387612d3490919063ffffffff16565b0160ff1682019150808060010191505061261b565b508351811061268f57604051806020016040528060008152509150506126c6565b60006126a48286612d3490919063ffffffff16565b60ff1690506126c16001830182876126f69092919063ffffffff16565b925050505b92915050565b6000815183018451101580156126ed57506126ec84848460008651612d58565b5b90509392505050565b60608351828401111561270857600080fd5b6060826040519080825280601f01601f19166020018201604052801561273d5781602001600182028038833980820191505090505b509050600080602083019150856020880101905061275c828287612d7c565b8293505050509392505050565b600080600281111561277757fe5b600860009054906101000a900460ff16600281111561279257fe5b14612805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f7420696e207265717569726564207068617365000000000000000000000081525060200191505060405180910390fd5b600061281086612dc5565b905060038110158015612824575060068111155b61282d57600080fd5b600061283b878787876117de565b905060006004600083815260200190815260200160002060020154146128c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f436c61696d20616c7265616479207375626d697474656400000000000000000081525060200191505060405180910390fd5b60006128d687600261260e565b511461294a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4e616d65206d757374206265206120324c44000000000000000000000000000081525060200191505060405180910390fd5b600061295588611119565b9050803410156129b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806130be6022913960400191505060405180910390fd5b80341115612a02573373ffffffffffffffffffffffffffffffffffffffff166108fc8234039081150290604051600060405180830381858888f19350505050158015612a00573d6000803e3d6000fd5b505b6040518060800160405280898051906020012081526020018773ffffffffffffffffffffffffffffffffffffffff16815260200182815260200160006003811115612a4957fe5b815250600460008481526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040820151816002015560608201518160030160006101000a81548160ff02191690836003811115612ade57fe5b02179055509050506006600081548092919060010191905055507f186f55cfb37bd38b311b8d5e8a212edf83c4d92107f48dbb7a4a5c217714eab188888389896040518080602001806020018681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001848103845289818151815260200191508051906020019080838360005b83811015612b9e578082015181840152602081019050612b83565b50505050905090810190601f168015612bcb5780820380516001836020036101000a031916815260200191505b50848103835288818151815260200191508051906020019080838360005b83811015612c04578082015181840152602081019050612be9565b50505050905090810190601f168015612c315780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015612c6a578082015181840152602081019050612c4f565b50505050905090810190601f168015612c975780820380516001836020036101000a031916815260200191505b509850505050505050505060405180910390a15050505050505050565b6000819050919050565b612cc66130a3565b600060208381612cd257fe5b0614612ceb5760208281612ce257fe5b06602003820191505b81836020018181525050604051808452600081528281016020016040525082905092915050565b612d1a6130a3565b612d2c83846000015151848551612f3b565b905092915050565b6000828281518110612d4257fe5b602001015160f81c60f81b60f81c905092915050565b6000612d65848484612ff4565b612d70878785612ff4565b14905095945050505050565b5b60208110612da05781518352602083019250602082019150602081039050612d7d565b60006001826020036101000a0390508019835116818551168181178652505050505050565b6000806000809050600084519050600092505b80821015612f30576000858381518110612dee57fe5b602001015160f81c60f81b9050608060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e3457600183019250612f22565b60e060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612e6d57600283019250612f21565b60f060f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ea657600383019250612f20565b60f8801b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612ede57600483019250612f1f565b60fc60f81b817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015612f1757600583019250612f1e565b6006830192505b5b5b5b5b508280600101935050612dd8565b829350505050919050565b612f436130a3565b8251821115612f5157600080fd5b84602001518285011115612f7c57612f7b856002612f758860200151888701613017565b02613033565b5b600080865180518760208301019350808887011115612f9b5787860182525b60208701925050505b60208410612fc75780518252602082019150602081019050602084039350612fa4565b60006001856020036101000a03905080198251168184511681811785525050879350505050949350505050565b60008351828401111561300657600080fd5b818360208601012090509392505050565b6000818311156130295782905061302d565b8190505b92915050565b6060826000015190506130468383612cbe565b506130518382612d12565b50505050565b604051806080016040528060008019168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081526020016000600381111561309d57fe5b81525090565b60405180604001604052806060815260200160008152509056fe496e73756666696369656e742066756e647320666f72207265736572766174696f6ea265627a7a72315820b6bde6e14dc607cd7ae19adc4a245adfd38c6cd588d0a392210fa9e95eac5ac364736f6c63430005100032",
  "sourceMap": "1134:12128:12:-;;;2112:260;8:9:-1;5:2;;;30:1;27;20:12;5:2;2112:260:12;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2112:260:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12:-;;;;;;;",
  "deployedSourceMap": "1134:12128:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2808:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2808:92:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2808:92:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;1694:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1694:30:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1730;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1730:30:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3013:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3013:107:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3013:107:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;1851:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1851:25:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2906:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2906:101:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2906:101:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;6575:340;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6575:340:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6575:340:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6575:340:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6575:340:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6575:340:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;:::i;:::-;;1882:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1882:28:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3917:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3917:145:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3917:145:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3917:145:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3917:145:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2716:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2716:86:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2716:86:12;;;;;;;;;;;;;;;;;;;:::i;:::-;;11262:470;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11262:470:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11262:470:12;;;;;;;;;;;;;;;;;:::i;:::-;;7661:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7661:151:12;;;:::i;:::-;;7306:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7306:201:12;;;:::i;:::-;;3470:270;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3470:270:12;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3470:270:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3470:270:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3470:270:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3470:270:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3470:270:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3470:270:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3470:270:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8136:1068;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8136:1068:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8136:1068:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4680:210;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4680:210:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4680:210:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4680:210:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4680:210:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4680:210:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;:::i;:::-;;1916:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1916:18:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10010:734;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10010:734:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10010:734:12;;;;;;;;;;;;;;;;;:::i;:::-;;9466:319;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9466:319:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9466:319:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9466:319:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9466:319:12;;;;;;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:12;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9466:319:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9466:319:12;;;;;;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:12;;;;;;;;;;;;:::i;:::-;;7025:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7025:99:12;;;:::i;:::-;;10904:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10904:169:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10904:169:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10904:169:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10904:169:12;;;;;;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:12;;;;;;;;;;;;:::i;:::-;;1198:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1198:51:12;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1766:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1766:37:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1766:37:12;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5507:449;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5507:449:12;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5507:449:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5507:449:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5507:449:12;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5507:449:12;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;:::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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4005:50:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4005:50:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4005:50:12;;;;;;;;;;;;;;;;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:12;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:12;;;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:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10236:81:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10236:81:12;;;;;;;;;;;;;;;;;10331:28;10341:9;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10341:17:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10341:17:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10341:17:12;;;;;;;;;;;;;;;;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:12;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:12;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:12:-;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:12:-;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:12;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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": [
        4053
      ]
    },
    "id": 4054,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3077,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:12"
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/BaseRegistrar.sol",
        "file": "./BaseRegistrar.sol",
        "id": 3078,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 107,
        "src": "25:29:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/StringUtils.sol",
        "file": "./StringUtils.sol",
        "id": 3079,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 4415,
        "src": "55:27:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/PriceOracle.sol",
        "file": "./PriceOracle.sol",
        "id": 3080,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 2279,
        "src": "83:27:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/buffer/contracts/Buffer.sol",
        "file": "@ensdomains/buffer/contracts/Buffer.sol",
        "id": 3081,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 5085,
        "src": "112:49:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "id": 3082,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 5806,
        "src": "162:60:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol",
        "file": "openzeppelin-solidity/contracts/access/Roles.sol",
        "id": 3083,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 12001,
        "src": "223:58:12",
        "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": 4053,
        "linearizedBaseContracts": [
          4053
        ],
        "name": "ShortNameClaims",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3086,
            "libraryName": {
              "contractScope": null,
              "id": 3084,
              "name": "Roles",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12000,
              "src": "1171:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Roles_$12000",
                "typeString": "library Roles"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1165:27:12",
            "typeName": {
              "contractScope": null,
              "id": 3085,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11913,
              "src": "1181:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11913_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            }
          },
          {
            "constant": true,
            "id": 3089,
            "name": "REGISTRATION_PERIOD",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1198:51:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3087,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1198:4:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3331353336303030",
              "id": 3088,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1241:8:12",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_31536000_by_1",
                "typeString": "int_const 31536000"
              },
              "value": "31536000"
            },
            "visibility": "public"
          },
          {
            "id": 3092,
            "libraryName": {
              "contractScope": null,
              "id": 3090,
              "name": "Buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5084,
              "src": "1262:6:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Buffer_$5084",
                "typeString": "library Buffer"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1256:31:12",
            "typeName": {
              "contractScope": null,
              "id": 3091,
              "name": "Buffer.buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4620,
              "src": "1273:13:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$4620_storage_ptr",
                "typeString": "struct Buffer.buffer"
              }
            }
          },
          {
            "id": 3095,
            "libraryName": {
              "contractScope": null,
              "id": 3093,
              "name": "BytesUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5805,
              "src": "1298:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesUtils_$5805",
                "typeString": "library BytesUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1292:27:12",
            "typeName": {
              "id": 3094,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1313:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "id": 3098,
            "libraryName": {
              "contractScope": null,
              "id": 3096,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4414,
              "src": "1330:11:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$4414",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1324:29:12",
            "typeName": {
              "id": 3097,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1346:6:12",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "canonicalName": "ShortNameClaims.Phase",
            "id": 3102,
            "members": [
              {
                "id": 3099,
                "name": "OPEN",
                "nodeType": "EnumValue",
                "src": "1380:4:12"
              },
              {
                "id": 3100,
                "name": "REVIEW",
                "nodeType": "EnumValue",
                "src": "1394:6:12"
              },
              {
                "id": 3101,
                "name": "FINAL",
                "nodeType": "EnumValue",
                "src": "1410:5:12"
              }
            ],
            "name": "Phase",
            "nodeType": "EnumDefinition",
            "src": "1359:62:12"
          },
          {
            "canonicalName": "ShortNameClaims.Status",
            "id": 3107,
            "members": [
              {
                "id": 3103,
                "name": "PENDING",
                "nodeType": "EnumValue",
                "src": "1449:7:12"
              },
              {
                "id": 3104,
                "name": "APPROVED",
                "nodeType": "EnumValue",
                "src": "1466:8:12"
              },
              {
                "id": 3105,
                "name": "DECLINED",
                "nodeType": "EnumValue",
                "src": "1484:8:12"
              },
              {
                "id": 3106,
                "name": "WITHDRAWN",
                "nodeType": "EnumValue",
                "src": "1502:9:12"
              }
            ],
            "name": "Status",
            "nodeType": "EnumDefinition",
            "src": "1427:90:12"
          },
          {
            "canonicalName": "ShortNameClaims.Claim",
            "id": 3116,
            "members": [
              {
                "constant": false,
                "id": 3109,
                "name": "labelHash",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1546:17:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 3108,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3111,
                "name": "claimant",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1573:16:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3110,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1573:7:12",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3113,
                "name": "paid",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1599:9:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3112,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1599:4:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3115,
                "name": "status",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1618:13:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_Status_$3107",
                  "typeString": "enum ShortNameClaims.Status"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 3114,
                  "name": "Status",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 3107,
                  "src": "1618:6:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3107",
                    "typeString": "enum ShortNameClaims.Status"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 4053,
            "src": "1523:115:12",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3118,
            "name": "owners",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1644:17:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11913_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3117,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11913,
              "src": "1644:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11913_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3120,
            "name": "ratifiers",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1667:20:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11913_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3119,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11913,
              "src": "1667:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11913_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3122,
            "name": "priceOracle",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1694:30:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_PriceOracle_$2278",
              "typeString": "contract PriceOracle"
            },
            "typeName": {
              "contractScope": null,
              "id": 3121,
              "name": "PriceOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2278,
              "src": "1694:11:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PriceOracle_$2278",
                "typeString": "contract PriceOracle"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3124,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1730:30:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_BaseRegistrar_$106",
              "typeString": "contract BaseRegistrar"
            },
            "typeName": {
              "contractScope": null,
              "id": 3123,
              "name": "BaseRegistrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 106,
              "src": "1730:13:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                "typeString": "contract BaseRegistrar"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3128,
            "name": "claims",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1766:37:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
              "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
            },
            "typeName": {
              "id": 3127,
              "keyType": {
                "id": 3125,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1774:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1766:23:12",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 3126,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 3116,
                "src": "1783:5:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                  "typeString": "struct ShortNameClaims.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3132,
            "name": "approvedNames",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1809:36:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 3131,
              "keyType": {
                "id": 3129,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1817:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1809:22:12",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 3130,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1826:4:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3134,
            "name": "pendingClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1851:25:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3133,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1851:4:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3136,
            "name": "unresolvedClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1882:28:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3135,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1882:4:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3138,
            "name": "phase",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1916:18:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Phase_$3102",
              "typeString": "enum ShortNameClaims.Phase"
            },
            "typeName": {
              "contractScope": null,
              "id": 3137,
              "name": "Phase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3102,
              "src": "1916:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Phase_$3102",
                "typeString": "enum ShortNameClaims.Phase"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3150,
            "name": "ClaimSubmitted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3140,
                  "indexed": false,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "1962:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3139,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3142,
                  "indexed": false,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "1978:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3141,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3144,
                  "indexed": false,
                  "name": "paid",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "1993:9:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3143,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1993:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3146,
                  "indexed": false,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "2004:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2004:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3148,
                  "indexed": false,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "2022:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3147,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2022:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1961:74:12"
            },
            "src": "1941:95:12"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3156,
            "name": "ClaimStatusChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3152,
                  "indexed": true,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "2066:23:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2066:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3154,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "2091:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3107",
                    "typeString": "enum ShortNameClaims.Status"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3153,
                    "name": "Status",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3107,
                    "src": "2091:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2065:40:12"
            },
            "src": "2041:65:12"
          },
          {
            "body": {
              "id": 3191,
              "nodeType": "Block",
              "src": "2202:170:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3165,
                      "name": "priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3122,
                      "src": "2212:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2278",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3166,
                      "name": "_priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3158,
                      "src": "2226:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2278",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "src": "2212:26:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2278",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "id": 3168,
                  "nodeType": "ExpressionStatement",
                  "src": "2212:26:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3169,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3124,
                      "src": "2248:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3170,
                      "name": "_registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3160,
                      "src": "2260:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "src": "2248:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "id": 3172,
                  "nodeType": "ExpressionStatement",
                  "src": "2248:22:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3173,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3138,
                      "src": "2280:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3174,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3102,
                        "src": "2288:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3175,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "OPEN",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2288:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "2280:18:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3177,
                  "nodeType": "ExpressionStatement",
                  "src": "2280:18:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3181,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13010,
                          "src": "2320:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2320:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3178,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3118,
                        "src": "2309:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3180,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2309:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2309:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3184,
                  "nodeType": "ExpressionStatement",
                  "src": "2309:22:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3188,
                        "name": "_ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3162,
                        "src": "2355:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3185,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3120,
                        "src": "2341:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3187,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2341:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2341:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3190,
                  "nodeType": "ExpressionStatement",
                  "src": "2341:24:12"
                }
              ]
            },
            "documentation": null,
            "id": 3192,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3158,
                  "name": "_priceOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2124:24:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PriceOracle_$2278",
                    "typeString": "contract PriceOracle"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3157,
                    "name": "PriceOracle",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2278,
                    "src": "2124:11:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2278",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3160,
                  "name": "_registrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2150:24:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                    "typeString": "contract BaseRegistrar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3159,
                    "name": "BaseRegistrar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 106,
                    "src": "2150:13:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3162,
                  "name": "_ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2176:17:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2176:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2123:71:12"
            },
            "returnParameters": {
              "id": 3164,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2202:0:12"
            },
            "scope": 4053,
            "src": "2112:260:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3204,
              "nodeType": "Block",
              "src": "2399:86:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3197,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13010,
                              "src": "2428:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3198,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2428:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3195,
                            "name": "owners",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3118,
                            "src": "2417:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11913_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3196,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11999,
                          "src": "2417:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2417:22:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d75737420626520616e206f776e6572",
                        "id": 3200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2441:25:12",
                        "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": 3194,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "2409:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2409:58:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3202,
                  "nodeType": "ExpressionStatement",
                  "src": "2409:58:12"
                },
                {
                  "id": 3203,
                  "nodeType": "PlaceholderStatement",
                  "src": "2477:1:12"
                }
              ]
            },
            "documentation": null,
            "id": 3205,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3193,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2396:2:12"
            },
            "src": "2378:107:12",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3217,
              "nodeType": "Block",
              "src": "2515:91:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3210,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13010,
                              "src": "2547:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3211,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2547:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3208,
                            "name": "ratifiers",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3120,
                            "src": "2533:9:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11913_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3209,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11999,
                          "src": "2533:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2533:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d7573742062652061207261746966696572",
                        "id": 3213,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2560:27:12",
                        "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": 3207,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "2525:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2525:63:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3215,
                  "nodeType": "ExpressionStatement",
                  "src": "2525:63:12"
                },
                {
                  "id": 3216,
                  "nodeType": "PlaceholderStatement",
                  "src": "2598:1:12"
                }
              ]
            },
            "documentation": null,
            "id": 3218,
            "name": "onlyRatifier",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3206,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2512:2:12"
            },
            "src": "2491:115:12",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3230,
              "nodeType": "Block",
              "src": "2638:72:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Phase_$3102",
                          "typeString": "enum ShortNameClaims.Phase"
                        },
                        "id": 3225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3223,
                          "name": "phase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3138,
                          "src": "2656:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3102",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3224,
                          "name": "p",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3220,
                          "src": "2665:1:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3102",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "src": "2656:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420696e207265717569726564207068617365",
                        "id": 3226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2668:23:12",
                        "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": 3222,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "2648:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2648:44:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3228,
                  "nodeType": "ExpressionStatement",
                  "src": "2648:44:12"
                },
                {
                  "id": 3229,
                  "nodeType": "PlaceholderStatement",
                  "src": "2702:1:12"
                }
              ]
            },
            "documentation": null,
            "id": 3231,
            "name": "inPhase",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3220,
                  "name": "p",
                  "nodeType": "VariableDeclaration",
                  "scope": 3231,
                  "src": "2629:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Phase_$3102",
                    "typeString": "enum ShortNameClaims.Phase"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3219,
                    "name": "Phase",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3102,
                    "src": "2629:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2628:9:12"
            },
            "src": "2612:98:12",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3244,
              "nodeType": "Block",
              "src": "2768:34:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3233,
                        "src": "2789:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3238,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3118,
                        "src": "2778:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3240,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2778:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3242,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2778:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3243,
                  "nodeType": "ExpressionStatement",
                  "src": "2778:17:12"
                }
              ]
            },
            "documentation": null,
            "id": 3245,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3236,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3235,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "2758:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2758:9:12"
              }
            ],
            "name": "addOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3234,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3233,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3245,
                  "src": "2734:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3232,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2734:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2733:15:12"
            },
            "returnParameters": {
              "id": 3237,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2768:0:12"
            },
            "scope": 4053,
            "src": "2716:86:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3258,
              "nodeType": "Block",
              "src": "2863:37:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3255,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3247,
                        "src": "2887:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3252,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3118,
                        "src": "2873:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3254,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11976,
                      "src": "2873:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2873:20:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3257,
                  "nodeType": "ExpressionStatement",
                  "src": "2873:20:12"
                }
              ]
            },
            "documentation": null,
            "id": 3259,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3250,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3249,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "2853:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2853:9:12"
              }
            ],
            "name": "removeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3248,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3247,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3259,
                  "src": "2829:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3246,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2829:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2828:15:12"
            },
            "returnParameters": {
              "id": 3251,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2863:0:12"
            },
            "scope": 4053,
            "src": "2808:92:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3272,
              "nodeType": "Block",
              "src": "2967:40:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3269,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "2991:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3266,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3120,
                        "src": "2977:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3268,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2977:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2977:23:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3271,
                  "nodeType": "ExpressionStatement",
                  "src": "2977:23:12"
                }
              ]
            },
            "documentation": null,
            "id": 3273,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3264,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3263,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3218,
                  "src": "2954:12:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2954:12:12"
              }
            ],
            "name": "addRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3262,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3261,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3273,
                  "src": "2927:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2927:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2926:18:12"
            },
            "returnParameters": {
              "id": 3265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2967:0:12"
            },
            "scope": 4053,
            "src": "2906:101:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3286,
              "nodeType": "Block",
              "src": "3077:43:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3283,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3275,
                        "src": "3104:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3280,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3120,
                        "src": "3087:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3282,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11976,
                      "src": "3087:16:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3087:26:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3285,
                  "nodeType": "ExpressionStatement",
                  "src": "3087:26:12"
                }
              ]
            },
            "documentation": null,
            "id": 3287,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3278,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3277,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3218,
                  "src": "3064:12:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3064:12:12"
              }
            ],
            "name": "removeRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3275,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3287,
                  "src": "3037:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3274,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3037:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3036:18:12"
            },
            "returnParameters": {
              "id": 3279,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3077:0:12"
            },
            "scope": 4053,
            "src": "3013:107:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3320,
              "nodeType": "Block",
              "src": "3607:133:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3305,
                                    "name": "claimed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3289,
                                    "src": "3667:7:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3304,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3661:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3306,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3661:14:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3303,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13004,
                              "src": "3651:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3307,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3651:25:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3309,
                                "name": "dnsname",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3291,
                                "src": "3688:7:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3308,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13004,
                              "src": "3678:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3310,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3678:18:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3311,
                            "name": "claimant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3293,
                            "src": "3698:8:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3314,
                                    "name": "email",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3295,
                                    "src": "3724:5:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3313,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3718:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3315,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3718:12:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3312,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13004,
                              "src": "3708:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3316,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3708:23:12",
                            "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": 3301,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12997,
                            "src": "3634:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3634:16:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3317,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3634:98:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3300,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13004,
                      "src": "3624:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3624:109:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3299,
                  "id": 3319,
                  "nodeType": "Return",
                  "src": "3617:116:12"
                }
              ]
            },
            "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": 3321,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "computeClaimId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3289,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3494:21:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3288,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3494:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3291,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3517:20:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3290,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3293,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3539:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3292,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3539:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3295,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3557:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3294,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3557:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3493:84:12"
            },
            "returnParameters": {
              "id": 3299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3298,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3598:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3297,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3598:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3597:9:12"
            },
            "scope": 4053,
            "src": "3470:270:12",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3335,
              "nodeType": "Block",
              "src": "3988:74:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3330,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3323,
                        "src": "4023:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4032:1:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 3332,
                        "name": "REGISTRATION_PERIOD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "4035:19:12",
                        "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": 3328,
                        "name": "priceOracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3122,
                        "src": "4005:11:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PriceOracle_$2278",
                          "typeString": "contract PriceOracle"
                        }
                      },
                      "id": 3329,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2277,
                      "src": "4005:17:12",
                      "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": 3333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4005:50:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3327,
                  "id": 3334,
                  "nodeType": "Return",
                  "src": "3998:57:12"
                }
              ]
            },
            "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": 3336,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getClaimCost",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3323,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3336,
                  "src": "3939:21:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3322,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3939:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3938:23:12"
            },
            "returnParameters": {
              "id": 3327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3326,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3336,
                  "src": "3982:4:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3325,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3982:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3981:6:12"
            },
            "scope": 4053,
            "src": "3917:145:12",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3359,
              "nodeType": "Block",
              "src": "4779:111:12",
              "statements": [
                {
                  "assignments": [
                    3346
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3346,
                      "name": "claimed",
                      "nodeType": "VariableDeclaration",
                      "scope": 3359,
                      "src": "4789:21:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3345,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4789:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3351,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3348,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3338,
                        "src": "4822:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4828:1:12",
                        "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": 3347,
                      "name": "getLabel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4038,
                      "src": "4813:8:12",
                      "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": 3350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4813:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4789:41:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3353,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3346,
                        "src": "4852:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3354,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3338,
                        "src": "4861:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3355,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3340,
                        "src": "4867:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3356,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3342,
                        "src": "4877:5:12",
                        "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": 3352,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3972,
                      "src": "4840:11:12",
                      "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": 3357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4840:43:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3358,
                  "nodeType": "ExpressionStatement",
                  "src": "4840:43:12"
                }
              ]
            },
            "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": 3360,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitExactClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3338,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3360,
                  "src": "4706:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3337,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4706:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3340,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3360,
                  "src": "4725:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3339,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4725:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3342,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3360,
                  "src": "4743:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3341,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4743:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4705:58:12"
            },
            "returnParameters": {
              "id": 3344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4779:0:12"
            },
            "scope": 4053,
            "src": "4680:210:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3424,
              "nodeType": "Block",
              "src": "5609:347:12",
              "statements": [
                {
                  "assignments": [
                    3370
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3370,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3424,
                      "src": "5619:23:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3369,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5619:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3377,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3373,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3362,
                            "src": "5660:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3374,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5666:1:12",
                            "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": 3372,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4038,
                          "src": "5651:8:12",
                          "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": 3375,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5651:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3371,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5645:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5645:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5619:50:12"
                },
                {
                  "assignments": [
                    3379
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3379,
                      "name": "secondLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3424,
                      "src": "5679:24:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3378,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5679:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3386,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3382,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3362,
                            "src": "5721:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "31",
                            "id": 3383,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5727:1:12",
                            "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": 3381,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4038,
                          "src": "5712:8:12",
                          "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": 3384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5712:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5706:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5706:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5679:51:12"
                },
                {
                  "assignments": [
                    3390
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3390,
                      "name": "buf",
                      "nodeType": "VariableDeclaration",
                      "scope": 3424,
                      "src": "5740:24:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                        "typeString": "struct Buffer.buffer"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3389,
                        "name": "Buffer.buffer",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4620,
                        "src": "5740:13:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_storage_ptr",
                          "typeString": "struct Buffer.buffer"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3391,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5740:24:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3395,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3370,
                            "src": "5783:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3396,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5783:17:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3397,
                            "name": "secondLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3379,
                            "src": "5803:11:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5803:18:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5783:38:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3392,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "5774:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3394,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4655,
                      "src": "5774:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4620_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$4620_memory_ptr_$bound_to$_t_struct$_buffer_$4620_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,uint256) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5774:48:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3401,
                  "nodeType": "ExpressionStatement",
                  "src": "5774:48:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3405,
                        "name": "firstLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3370,
                        "src": "5843:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3402,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "5832:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3404,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4856,
                      "src": "5832:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4620_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4620_memory_ptr_$bound_to$_t_struct$_buffer_$4620_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3406,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5832:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3407,
                  "nodeType": "ExpressionStatement",
                  "src": "5832:22:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3411,
                        "name": "secondLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3379,
                        "src": "5875:11:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3408,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "5864:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3410,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4856,
                      "src": "5864:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4620_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4620_memory_ptr_$bound_to$_t_struct$_buffer_$4620_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5864:23:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3413,
                  "nodeType": "ExpressionStatement",
                  "src": "5864:23:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3416,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3390,
                              "src": "5917:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                                "typeString": "struct Buffer.buffer memory"
                              }
                            },
                            "id": 3417,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "buf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4617,
                            "src": "5917:7:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3415,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5910:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3418,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5910:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3419,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3362,
                        "src": "5927:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3420,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3364,
                        "src": "5933:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3421,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3366,
                        "src": "5943:5:12",
                        "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": 3414,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3972,
                      "src": "5898:11:12",
                      "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": 3422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5898:51:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3423,
                  "nodeType": "ExpressionStatement",
                  "src": "5898:51:12"
                }
              ]
            },
            "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": 3425,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitCombinedClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3362,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3425,
                  "src": "5536:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3361,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5536:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3364,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3425,
                  "src": "5555:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3363,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5555:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3366,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3425,
                  "src": "5573:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3365,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5573:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5535:58:12"
            },
            "returnParameters": {
              "id": 3368,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5609:0:12"
            },
            "scope": 4053,
            "src": "5507:449:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3472,
              "nodeType": "Block",
              "src": "6675:240:12",
              "statements": [
                {
                  "assignments": [
                    3435
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3435,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3472,
                      "src": "6685:23:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3434,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "6685:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3442,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3438,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3427,
                            "src": "6726:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3439,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6732:1:12",
                            "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": 3437,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4038,
                          "src": "6717:8:12",
                          "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": 3440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6717:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3436,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6711:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6711:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6685:50:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3446,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3435,
                                "src": "6771:10:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3447,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6771:17:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 3448,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6791:1:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            },
                            "src": "6771:21:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "657468",
                                "id": 3451,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6800:5:12",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                },
                                "value": "eth"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                }
                              ],
                              "id": 3450,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6794:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6794:12:12",
                            "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": 3444,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3435,
                            "src": "6753:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "equals",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5350,
                          "src": "6753:17:12",
                          "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": 3453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6753:54:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3443,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "6745:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6745:63:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3455,
                  "nodeType": "ExpressionStatement",
                  "src": "6745:63:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3460,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6858:1:12",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3464,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3461,
                                    "name": "firstLabel",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3435,
                                    "src": "6861:10:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 3462,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "6861:17:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "33",
                                  "id": 3463,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6881:1:12",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_3_by_1",
                                    "typeString": "int_const 3"
                                  },
                                  "value": "3"
                                },
                                "src": "6861:21:12",
                                "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": 3458,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3435,
                                "src": "6837:10:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3459,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "substring",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5582,
                              "src": "6837:20:12",
                              "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": 3465,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6837:46:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3457,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6830:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3466,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6830:54:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3467,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3427,
                        "src": "6886:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3468,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3429,
                        "src": "6892:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3469,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3431,
                        "src": "6902:5:12",
                        "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": 3456,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3972,
                      "src": "6818:11:12",
                      "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": 3470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6818:90:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3471,
                  "nodeType": "ExpressionStatement",
                  "src": "6818:90:12"
                }
              ]
            },
            "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": 3473,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitPrefixClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3427,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "6602:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3426,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6602:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3429,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "6621:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3428,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6621:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3431,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "6639:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3430,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6639:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6601:58:12"
            },
            "returnParameters": {
              "id": 3433,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6675:0:12"
            },
            "scope": 4053,
            "src": "6575:340:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3487,
              "nodeType": "Block",
              "src": "7087:37:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3482,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3138,
                      "src": "7097:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3483,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3102,
                        "src": "7105:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3484,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "REVIEW",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7105:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7097:20:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3486,
                  "nodeType": "ExpressionStatement",
                  "src": "7097:20:12"
                }
              ]
            },
            "documentation": "@dev Closes the claim submission period.\n     Callable only by the owner.",
            "id": 3488,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3476,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3475,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "7057:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7057:9:12"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3478,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "7075:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7075:10:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3480,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3477,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "7067:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7067:19:12"
              }
            ],
            "name": "closeClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3474,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7045:2:12"
            },
            "returnParameters": {
              "id": 3481,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7087:0:12"
            },
            "scope": 4053,
            "src": "7025:99:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3508,
              "nodeType": "Block",
              "src": "7374:133:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3500,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3498,
                          "name": "pendingClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3134,
                          "src": "7452:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7469:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7452:18:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3497,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "7444:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7444:27:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3502,
                  "nodeType": "ExpressionStatement",
                  "src": "7444:27:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3503,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3138,
                      "src": "7481:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3504,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3102,
                        "src": "7489:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3505,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "FINAL",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7489:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7481:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3507,
                  "nodeType": "ExpressionStatement",
                  "src": "7481:19:12"
                }
              ]
            },
            "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": 3509,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3491,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3490,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3218,
                  "src": "7339:12:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7339:12:12"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3493,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "7360:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7360:12:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3495,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3492,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "7352:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7352:21:12"
              }
            ],
            "name": "ratifyClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3489,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7327:2:12"
            },
            "returnParameters": {
              "id": 3496,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7374:0:12"
            },
            "scope": 4053,
            "src": "7306:201:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3531,
              "nodeType": "Block",
              "src": "7720:92:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3521,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3519,
                          "name": "unresolvedClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3136,
                          "src": "7738:16:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3520,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7758:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7738:21:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3518,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "7730:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7730:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3523,
                  "nodeType": "ExpressionStatement",
                  "src": "7730:30:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3526,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13010,
                              "src": "7793:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3527,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7793:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 3525,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4052,
                          "src": "7783:9:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7783:21:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3524,
                      "name": "selfdestruct",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13018,
                      "src": "7770:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable)"
                      }
                    },
                    "id": 3529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7770:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3530,
                  "nodeType": "ExpressionStatement",
                  "src": "7770:35:12"
                }
              ]
            },
            "documentation": "@dev Cleans up the contract, after all claims are resolved.\n     Callable only by the owner, and only in final state.",
            "id": 3532,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3512,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3511,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "7689:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7689:9:12"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3514,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "7707:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7707:11:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3516,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3513,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "7699:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7699:20:12"
              }
            ],
            "name": "destroy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3510,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7677:2:12"
            },
            "returnParameters": {
              "id": 3517,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7720:0:12"
            },
            "scope": 4053,
            "src": "7661:151:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3637,
              "nodeType": "Block",
              "src": "8221:983:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3554,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3546,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13010,
                                "src": "8296:3:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3547,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8296:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3544,
                              "name": "owners",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3118,
                              "src": "8285:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11913_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3545,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11999,
                            "src": "8285:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3548,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8285:22:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3551,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13010,
                                "src": "8325:3:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3552,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8325:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3549,
                              "name": "ratifiers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3120,
                              "src": "8311:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11913_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3550,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11999,
                            "src": "8311:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3553,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8311:25:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8285:51:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3543,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "8277:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8277:60:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3556,
                  "nodeType": "ExpressionStatement",
                  "src": "8277:60:12"
                },
                {
                  "assignments": [
                    3558
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3558,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3637,
                      "src": "8348:18:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3557,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3116,
                        "src": "8348:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3562,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3559,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3128,
                      "src": "8369:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3561,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3560,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3534,
                      "src": "8376:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8369:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8348:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3567,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3564,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3558,
                            "src": "8402:5:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3565,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3113,
                          "src": "8402:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8415:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8402:14:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8418:17:12",
                        "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": 3563,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "8394:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8394:42:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3570,
                  "nodeType": "ExpressionStatement",
                  "src": "8394:42:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3571,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3558,
                        "src": "8450:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3572,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "8450:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3573,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "8466:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8466:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "8450:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3583,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3558,
                          "src": "8634:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3584,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3115,
                        "src": "8634:12:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3585,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3107,
                          "src": "8650:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "APPROVED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8650:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "8634:31:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 3596,
                    "nodeType": "IfStatement",
                    "src": "8631:166:12",
                    "trueBody": {
                      "id": 3595,
                      "nodeType": "Block",
                      "src": "8667:130:12",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3593,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3588,
                                "name": "approvedNames",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3132,
                                "src": "8748:13:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                  "typeString": "mapping(bytes32 => bool)"
                                }
                              },
                              "id": 3591,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3589,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3558,
                                  "src": "8762:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3590,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "labelHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3109,
                                "src": "8762:15:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "8748:30:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3592,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8781:5:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "8748:38:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3594,
                          "nodeType": "ExpressionStatement",
                          "src": "8748:38:12"
                        }
                      ]
                    }
                  },
                  "id": 3597,
                  "nodeType": "IfStatement",
                  "src": "8447:350:12",
                  "trueBody": {
                    "id": 3582,
                    "nodeType": "Block",
                    "src": "8482:143:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "8569:15:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3576,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3134,
                            "src": "8569:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3578,
                        "nodeType": "ExpressionStatement",
                        "src": "8569:15:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3580,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "8596:18:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3579,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "8596:16:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3581,
                        "nodeType": "ExpressionStatement",
                        "src": "8596:18:12"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 3598,
                    "name": "approved",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3536,
                    "src": "8918:8:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3615,
                  "nodeType": "IfStatement",
                  "src": "8915:125:12",
                  "trueBody": {
                    "id": 3614,
                    "nodeType": "Block",
                    "src": "8928:112:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3604,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "!",
                              "prefix": true,
                              "src": "8948:31:12",
                              "subExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3600,
                                  "name": "approvedNames",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3132,
                                  "src": "8949:13:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                    "typeString": "mapping(bytes32 => bool)"
                                  }
                                },
                                "id": 3603,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3601,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3558,
                                    "src": "8963:5:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3602,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3109,
                                  "src": "8963:15:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8949:30:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3599,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              13013,
                              13014
                            ],
                            "referencedDeclaration": 13013,
                            "src": "8940:7:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 3605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8940:40:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3606,
                        "nodeType": "ExpressionStatement",
                        "src": "8940:40:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3607,
                              "name": "approvedNames",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3132,
                              "src": "8992:13:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                              }
                            },
                            "id": 3610,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3608,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3558,
                                "src": "9006:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3609,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "labelHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3109,
                              "src": "9006:15:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8992:30:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 3611,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9025:4:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "8992:37:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3613,
                        "nodeType": "ExpressionStatement",
                        "src": "8992:37:12"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    3617
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3617,
                      "name": "status",
                      "nodeType": "VariableDeclaration",
                      "scope": 3637,
                      "src": "9050:13:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3616,
                        "name": "Status",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3107,
                        "src": "9050:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3624,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "id": 3618,
                      "name": "approved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3536,
                      "src": "9066:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3621,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "9091:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3622,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "DECLINED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9091:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "id": 3623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "9066:40:12",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3619,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "9075:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3620,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9075:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9050:56:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3625,
                          "name": "claims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3128,
                          "src": "9116:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                            "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                          }
                        },
                        "id": 3627,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3626,
                          "name": "claimId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3534,
                          "src": "9123:7:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9116:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage",
                          "typeString": "struct ShortNameClaims.Claim storage ref"
                        }
                      },
                      "id": 3628,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "9116:22:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3629,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3617,
                      "src": "9141:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "9116:31:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "id": 3631,
                  "nodeType": "ExpressionStatement",
                  "src": "9116:31:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3633,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3534,
                        "src": "9181:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3634,
                        "name": "status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3617,
                        "src": "9190:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3632,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3156,
                      "src": "9162:18:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3107_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9162:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3636,
                  "nodeType": "EmitStatement",
                  "src": "9157:40:12"
                }
              ]
            },
            "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": 3638,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3539,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "8207:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "8207:12:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3541,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3538,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "8199:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8199:21:12"
              }
            ],
            "name": "setClaimStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3534,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "8160:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3533,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8160:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3536,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "8177:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3535,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8177:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8159:32:12"
            },
            "returnParameters": {
              "id": 3542,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8221:0:12"
            },
            "scope": 4053,
            "src": "8136:1068:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3687,
              "nodeType": "Block",
              "src": "9559:226:12",
              "statements": [
                {
                  "body": {
                    "id": 3665,
                    "nodeType": "Block",
                    "src": "9611:58:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3659,
                                "name": "approved",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3641,
                                "src": "9640:8:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3661,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3660,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3648,
                                "src": "9649:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9640:11:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 3662,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9653:4:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3658,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3638,
                            "src": "9625:14:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3663,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9625:33:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3664,
                        "nodeType": "ExpressionStatement",
                        "src": "9625:33:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3651,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3648,
                      "src": "9585:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3652,
                        "name": "approved",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3641,
                        "src": "9589:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9589:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9585:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3666,
                  "initializationExpression": {
                    "assignments": [
                      3648
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3648,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3666,
                        "src": "9573:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3647,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9573:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3650,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9582:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9573:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9606:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3655,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3648,
                        "src": "9606:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3657,
                    "nodeType": "ExpressionStatement",
                    "src": "9606:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "9569:100:12"
                },
                {
                  "body": {
                    "id": 3685,
                    "nodeType": "Block",
                    "src": "9720:59:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3679,
                                "name": "declined",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3644,
                                "src": "9749:8:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3681,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3680,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3668,
                                "src": "9758:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9749:11:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3682,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9762:5:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3678,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3638,
                            "src": "9734:14:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9734:34:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3684,
                        "nodeType": "ExpressionStatement",
                        "src": "9734:34:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3674,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3671,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3668,
                      "src": "9694:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3672,
                        "name": "declined",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3644,
                        "src": "9698:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9698:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9694:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3686,
                  "initializationExpression": {
                    "assignments": [
                      3668
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3668,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3686,
                        "src": "9682:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3667,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9682:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3670,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9691:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9682:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9715:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3675,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3668,
                        "src": "9715:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3677,
                    "nodeType": "ExpressionStatement",
                    "src": "9715:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "9678:101:12"
                }
              ]
            },
            "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": 3688,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setClaimStatuses",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3645,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3641,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "9492:27:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3639,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9492:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3640,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9492:9:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3644,
                  "name": "declined",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "9521:27:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3642,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9521:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3643,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9521:9:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9491:58:12"
            },
            "returnParameters": {
              "id": 3646,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9559:0:12"
            },
            "scope": 4053,
            "src": "9466:319:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3769,
              "nodeType": "Block",
              "src": "10077:667:12",
              "statements": [
                {
                  "assignments": [
                    3698
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3698,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3769,
                      "src": "10087:18:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3697,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3116,
                        "src": "10087:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3702,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3699,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3128,
                      "src": "10108:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3701,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3700,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3690,
                      "src": "10115:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10108:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10087:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3707,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3704,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3698,
                            "src": "10141:5:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3705,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3113,
                          "src": "10141:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10154:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10141:14:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10157:17:12",
                        "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": 3703,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "10133:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10133:42:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3710,
                  "nodeType": "ExpressionStatement",
                  "src": "10133:42:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3711,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3698,
                        "src": "10189:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3712,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "10189:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3713,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "10205:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10205:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "10189:31:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3743,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3739,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3698,
                          "src": "10400:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3740,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3115,
                        "src": "10400:12:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3741,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3107,
                          "src": "10416:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "DECLINED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10416:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "10400:31:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 3758,
                      "nodeType": "Block",
                      "src": "10510:167:12",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 3755,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10660:5:12",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 3754,
                              "name": "assert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12999,
                              "src": "10653:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                "typeString": "function (bool) pure"
                              }
                            },
                            "id": 3756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10653:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3757,
                          "nodeType": "ExpressionStatement",
                          "src": "10653:13:12"
                        }
                      ]
                    },
                    "id": 3759,
                    "nodeType": "IfStatement",
                    "src": "10397:280:12",
                    "trueBody": {
                      "id": 3753,
                      "nodeType": "Block",
                      "src": "10433:71:12",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3749,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3698,
                                  "src": "10482:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3750,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "paid",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3113,
                                "src": "10482:10:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3745,
                                      "name": "claim",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3698,
                                      "src": "10457:5:12",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                        "typeString": "struct ShortNameClaims.Claim memory"
                                      }
                                    },
                                    "id": 3746,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "claimant",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3111,
                                    "src": "10457:14:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 3744,
                                  "name": "toPayable",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4052,
                                  "src": "10447:9:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                    "typeString": "function (address) pure returns (address payable)"
                                  }
                                },
                                "id": 3747,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10447:25:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              },
                              "id": 3748,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10447:34:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                "typeString": "function (uint256)"
                              }
                            },
                            "id": 3751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10447:46:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3752,
                          "nodeType": "ExpressionStatement",
                          "src": "10447:46:12"
                        }
                      ]
                    }
                  },
                  "id": 3760,
                  "nodeType": "IfStatement",
                  "src": "10186:491:12",
                  "trueBody": {
                    "id": 3738,
                    "nodeType": "Block",
                    "src": "10222:169:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3720,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3698,
                                    "src": "10263:5:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3721,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3109,
                                  "src": "10263:15:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 3719,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "10255:7:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint256"
                              },
                              "id": 3722,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10255:24:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3723,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3698,
                                "src": "10281:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3724,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "claimant",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3111,
                              "src": "10281:14:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3725,
                              "name": "REGISTRATION_PERIOD",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3089,
                              "src": "10297:19:12",
                              "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": 3716,
                              "name": "registrar",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3124,
                              "src": "10236:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                                "typeString": "contract BaseRegistrar"
                              }
                            },
                            "id": 3718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "register",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 89,
                            "src": "10236:18:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,address,uint256) external returns (uint256)"
                            }
                          },
                          "id": 3726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10236:81:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3727,
                        "nodeType": "ExpressionStatement",
                        "src": "10236:81:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3734,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3698,
                                "src": "10369:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3735,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "paid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3113,
                              "src": "10369:10:12",
                              "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": 3729,
                                      "name": "registrar",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3124,
                                      "src": "10341:9:12",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                                        "typeString": "contract BaseRegistrar"
                                      }
                                    },
                                    "id": 3730,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "owner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 12223,
                                    "src": "10341:15:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                      "typeString": "function () view external returns (address)"
                                    }
                                  },
                                  "id": 3731,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10341:17:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 3728,
                                "name": "toPayable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4052,
                                "src": "10331:9:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                  "typeString": "function (address) pure returns (address payable)"
                                }
                              },
                              "id": 3732,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10331:28:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10331:37:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3736,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10331:49:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3737,
                        "nodeType": "ExpressionStatement",
                        "src": "10331:49:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3762,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "--",
                    "prefix": false,
                    "src": "10687:18:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3761,
                      "name": "unresolvedClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3136,
                      "src": "10687:16:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3763,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:18:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "10715:22:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3764,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3128,
                        "src": "10722:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3766,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3765,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3690,
                        "src": "10729:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10722:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3768,
                  "nodeType": "ExpressionStatement",
                  "src": "10715:22:12"
                }
              ]
            },
            "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": 3770,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3693,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "10064:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "10064:11:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3695,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3692,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "10056:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10056:20:12"
              }
            ],
            "name": "resolveClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3690,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3770,
                  "src": "10032:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10032:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10031:17:12"
            },
            "returnParameters": {
              "id": 3696,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10077:0:12"
            },
            "scope": 4053,
            "src": "10010:734:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3795,
              "nodeType": "Block",
              "src": "10965:108:12",
              "statements": [
                {
                  "body": {
                    "id": 3793,
                    "nodeType": "Block",
                    "src": "11017:50:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3788,
                                "name": "claimIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3773,
                                "src": "11044:8:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3790,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3789,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3777,
                                "src": "11053:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11044:11:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3787,
                            "name": "resolveClaim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "11031:12:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 3791,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11031:25:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3792,
                        "nodeType": "ExpressionStatement",
                        "src": "11031:25:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3780,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3777,
                      "src": "10991:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3781,
                        "name": "claimIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3773,
                        "src": "10995:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10995:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10991:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3794,
                  "initializationExpression": {
                    "assignments": [
                      3777
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3777,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3794,
                        "src": "10979:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3776,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10979:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3779,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3778,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10988:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10979:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3785,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "11012:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3784,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3777,
                        "src": "11012:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3786,
                    "nodeType": "ExpressionStatement",
                    "src": "11012:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "10975:92:12"
                }
              ]
            },
            "documentation": "@dev Resolves multiple claims. Callable by anyone, only in the final phase.\n@param claimIds A list of claim IDs to resolve.",
            "id": 3796,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "resolveClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3774,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3773,
                  "name": "claimIds",
                  "nodeType": "VariableDeclaration",
                  "scope": 3796,
                  "src": "10927:27:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3771,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10927:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3772,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10927:9:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10926:29:12"
            },
            "returnParameters": {
              "id": 3775,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10965:0:12"
            },
            "scope": 4053,
            "src": "10904:169:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3849,
              "nodeType": "Block",
              "src": "11311:421:12",
              "statements": [
                {
                  "assignments": [
                    3802
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3802,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3849,
                      "src": "11321:18:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3801,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3116,
                        "src": "11321:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3806,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3803,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3128,
                      "src": "11342:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3805,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3804,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3798,
                      "src": "11349:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11342:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11321:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3808,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13010,
                            "src": "11413:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11413:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3810,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3802,
                            "src": "11427:5:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3811,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "claimant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3111,
                          "src": "11427:14:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11413:28:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3807,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "11405:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11405:37:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3814,
                  "nodeType": "ExpressionStatement",
                  "src": "11405:37:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3815,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3802,
                        "src": "11456:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3816,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "11456:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3817,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "11472:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3818,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11472:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "11456:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 3827,
                    "nodeType": "Block",
                    "src": "11534:43:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3825,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11548:18:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3824,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "11548:16:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3826,
                        "nodeType": "ExpressionStatement",
                        "src": "11548:18:12"
                      }
                    ]
                  },
                  "id": 3828,
                  "nodeType": "IfStatement",
                  "src": "11453:124:12",
                  "trueBody": {
                    "id": 3823,
                    "nodeType": "Block",
                    "src": "11488:40:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11502:15:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3820,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3134,
                            "src": "11502:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3822,
                        "nodeType": "ExpressionStatement",
                        "src": "11502:15:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3834,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3802,
                          "src": "11622:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3835,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "paid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3113,
                        "src": "11622:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3830,
                              "name": "claim",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3802,
                              "src": "11597:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                "typeString": "struct ShortNameClaims.Claim memory"
                              }
                            },
                            "id": 3831,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "claimant",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3111,
                            "src": "11597:14:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 3829,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4052,
                          "src": "11587:9:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11587:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 3833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11587:34:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11587:46:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3837,
                  "nodeType": "ExpressionStatement",
                  "src": "11587:46:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3839,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3798,
                        "src": "11667:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3840,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3107,
                          "src": "11676:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "WITHDRAWN",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11676:16:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3838,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3156,
                      "src": "11648:18:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3107_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11648:45:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3843,
                  "nodeType": "EmitStatement",
                  "src": "11643:50:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "11703:22:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3844,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3128,
                        "src": "11710:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3846,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3845,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3798,
                        "src": "11717:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11710:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3848,
                  "nodeType": "ExpressionStatement",
                  "src": "11703:22:12"
                }
              ]
            },
            "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": 3850,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "withdrawClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3798,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3850,
                  "src": "11285:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3797,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11285:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11284:17:12"
            },
            "returnParameters": {
              "id": 3800,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11311:0:12"
            },
            "scope": 4053,
            "src": "11262:470:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3971,
              "nodeType": "Block",
              "src": "11869:772:12",
              "statements": [
                {
                  "assignments": [
                    3866
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3866,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 3971,
                      "src": "11879:8:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3865,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11879:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3870,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3867,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "11890:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "id": 3868,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "strlen",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4413,
                      "src": "11890:14:12",
                      "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": 3869,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11890:16:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11879:27:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3878,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3874,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3872,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3866,
                            "src": "11924:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "33",
                            "id": 3873,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11931:1:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          },
                          "src": "11924:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3875,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3866,
                            "src": "11936:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "36",
                            "id": 3876,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11943:1:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          },
                          "src": "11936:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11924:20:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3871,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "11916:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3879,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11916:29:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3880,
                  "nodeType": "ExpressionStatement",
                  "src": "11916:29:12"
                },
                {
                  "assignments": [
                    3882
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3882,
                      "name": "claimId",
                      "nodeType": "VariableDeclaration",
                      "scope": 3971,
                      "src": "11956:15:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3881,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11956:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3889,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3884,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "11989:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3885,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3854,
                        "src": "11998:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3886,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3856,
                        "src": "12004:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3887,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3858,
                        "src": "12014:5:12",
                        "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": 3883,
                      "name": "computeClaimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3321,
                      "src": "11974:14:12",
                      "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": 3888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11974:46:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11956:64:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3891,
                              "name": "claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3128,
                              "src": "12038:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                              }
                            },
                            "id": 3893,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3892,
                              "name": "claimId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3882,
                              "src": "12045:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12038:15:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_storage",
                              "typeString": "struct ShortNameClaims.Claim storage ref"
                            }
                          },
                          "id": 3894,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3113,
                          "src": "12038:20:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3895,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12062:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12038:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d20616c7265616479207375626d6974746564",
                        "id": 3897,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12065:25:12",
                        "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": 3890,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "12030:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12030:61:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3899,
                  "nodeType": "ExpressionStatement",
                  "src": "12030:61:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3903,
                                    "name": "name",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3854,
                                    "src": "12189:4:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 3904,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12195:1:12",
                                    "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": 3902,
                                  "name": "getLabel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4038,
                                  "src": "12180:8:12",
                                  "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": 3905,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12180:17:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 3901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12174:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3906,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12174:24:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3907,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12174:31:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12209:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12174:36:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d65206d757374206265206120324c44",
                        "id": 3910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12212:20:12",
                        "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": 3900,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "12166:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12166:67:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3912,
                  "nodeType": "ExpressionStatement",
                  "src": "12166:67:12"
                },
                {
                  "assignments": [
                    3914
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3914,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 3971,
                      "src": "12244:10:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3913,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12244:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3918,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3916,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "12270:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3915,
                      "name": "getClaimCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3336,
                      "src": "12257:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) view returns (uint256)"
                      }
                    },
                    "id": 3917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12257:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12244:34:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3920,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13010,
                            "src": "12296:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3921,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12296:9:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3922,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3914,
                          "src": "12309:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12296:18:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e73756666696369656e742066756e647320666f72207265736572766174696f6e",
                        "id": 3924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12316:36:12",
                        "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": 3919,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "12288:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12288:65:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3926,
                  "nodeType": "ExpressionStatement",
                  "src": "12288:65:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3927,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13010,
                        "src": "12366:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3928,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12366:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3929,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3914,
                      "src": "12378:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12366:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3943,
                  "nodeType": "IfStatement",
                  "src": "12363:85:12",
                  "trueBody": {
                    "id": 3942,
                    "nodeType": "Block",
                    "src": "12385:63:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3936,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13010,
                                  "src": "12419:3:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3937,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "12419:9:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3938,
                                "name": "price",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3914,
                                "src": "12431:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12419:17:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3931,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13010,
                                "src": "12399:3:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3934,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "12399:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3935,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12399:19:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12399:38:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3941,
                        "nodeType": "ExpressionStatement",
                        "src": "12399:38:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3944,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3128,
                        "src": "12458:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3946,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3945,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3882,
                        "src": "12465:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12458:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3950,
                                  "name": "claimed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3852,
                                  "src": "12498:7:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 3949,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12492:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 3951,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12492:14:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 3948,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13004,
                            "src": "12482:9:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 3952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12482:25:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3953,
                          "name": "claimant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3856,
                          "src": "12509:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3954,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3914,
                          "src": "12519:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3955,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3107,
                            "src": "12526:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                              "typeString": "type(enum ShortNameClaims.Status)"
                            }
                          },
                          "id": 3956,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "PENDING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12526:14:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$3107",
                            "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_$3107",
                            "typeString": "enum ShortNameClaims.Status"
                          }
                        ],
                        "id": 3947,
                        "name": "Claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3116,
                        "src": "12476:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Claim_$3116_storage_ptr_$",
                          "typeString": "type(struct ShortNameClaims.Claim storage pointer)"
                        }
                      },
                      "id": 3957,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12476:65:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory",
                        "typeString": "struct ShortNameClaims.Claim memory"
                      }
                    },
                    "src": "12458:83:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "id": 3959,
                  "nodeType": "ExpressionStatement",
                  "src": "12458:83:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3961,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "12551:15:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3960,
                      "name": "pendingClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3134,
                      "src": "12551:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3962,
                  "nodeType": "ExpressionStatement",
                  "src": "12551:15:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3964,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "12596:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3965,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3854,
                        "src": "12605:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3966,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3914,
                        "src": "12611:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3967,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3856,
                        "src": "12618:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3968,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3858,
                        "src": "12628:5:12",
                        "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": 3963,
                      "name": "ClaimSubmitted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3150,
                      "src": "12581:14:12",
                      "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": 3969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12581:53:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3970,
                  "nodeType": "EmitStatement",
                  "src": "12576:58:12"
                }
              ]
            },
            "documentation": null,
            "id": 3972,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3861,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "11857:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "11857:10:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3863,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3860,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "11849:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11849:19:12"
              }
            ],
            "name": "handleClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3859,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3852,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11759:21:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3851,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11759:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3854,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11782:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3853,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "11782:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3856,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11801:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3855,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11801:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3858,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11819:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3857,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11819:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11758:81:12"
            },
            "returnParameters": {
              "id": 3864,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11869:0:12"
            },
            "scope": 4053,
            "src": "11738:903:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4037,
              "nodeType": "Block",
              "src": "12731:405:12",
              "statements": [
                {
                  "assignments": [
                    3982
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3982,
                      "name": "offset",
                      "nodeType": "VariableDeclaration",
                      "scope": 4037,
                      "src": "12780:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3981,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12780:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3984,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 3983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "12794:1:12",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12780:15:12"
                },
                {
                  "body": {
                    "id": 4011,
                    "nodeType": "Block",
                    "src": "12835:110:12",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3998,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3995,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3982,
                            "src": "12852:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3996,
                              "name": "name",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3974,
                              "src": "12862:4:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 3997,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12862:11:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12852:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4001,
                        "nodeType": "IfStatement",
                        "src": "12849:35:12",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 3999,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12882:2:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          },
                          "functionReturnParameters": 3980,
                          "id": 4000,
                          "nodeType": "Return",
                          "src": "12875:9:12"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4009,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4002,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3982,
                            "src": "12898:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 4008,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 4005,
                                  "name": "offset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3982,
                                  "src": "12923:6:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4003,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3974,
                                  "src": "12908:4:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "id": 4004,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "readUint8",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 5391,
                                "src": "12908:14:12",
                                "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": 4006,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12908:22:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 4007,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12933:1:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "12908:26:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "12898:36:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4010,
                        "nodeType": "ExpressionStatement",
                        "src": "12898:36:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3989,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3986,
                      "src": "12821:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3990,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3976,
                      "src": "12825:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12821:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4012,
                  "initializationExpression": {
                    "assignments": [
                      3986
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3986,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4012,
                        "src": "12809:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3985,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12809:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3988,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12818:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12809:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3993,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12830:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3992,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3986,
                        "src": "12830:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3994,
                    "nodeType": "ExpressionStatement",
                    "src": "12830:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "12805:140:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4013,
                      "name": "offset",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3982,
                      "src": "12998:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4014,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3974,
                        "src": "13008:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 4015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13008:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12998:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4019,
                  "nodeType": "IfStatement",
                  "src": "12995:35:12",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "",
                      "id": 4017,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13028:2:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                        "typeString": "literal_string \"\""
                      },
                      "value": ""
                    },
                    "functionReturnParameters": 3980,
                    "id": 4018,
                    "nodeType": "Return",
                    "src": "13021:9:12"
                  }
                },
                {
                  "assignments": [
                    4021
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4021,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 4037,
                      "src": "13040:8:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4020,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13040:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4026,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4024,
                        "name": "offset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3982,
                        "src": "13066:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4022,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3974,
                        "src": "13051:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 4023,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5391,
                      "src": "13051:14:12",
                      "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": 4025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13051:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13040:33:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4032,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4030,
                              "name": "offset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3982,
                              "src": "13112:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 4031,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13121:1:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "13112:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4033,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4021,
                            "src": "13124:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4028,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3974,
                            "src": "13097:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 4029,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "substring",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5582,
                          "src": "13097:14:12",
                          "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": 4034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13097:31:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4027,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13090:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": "string"
                    },
                    "id": 4035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13090:39:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 3980,
                  "id": 4036,
                  "nodeType": "Return",
                  "src": "13083:46:12"
                }
              ]
            },
            "documentation": null,
            "id": 4038,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLabel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3974,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 4038,
                  "src": "12665:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3973,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "12665:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3976,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 4038,
                  "src": "12684:8:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3975,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12684:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12664:29:12"
            },
            "returnParameters": {
              "id": 3980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3979,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4038,
                  "src": "12716:13:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3978,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "12716:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12715:15:12"
            },
            "scope": 4053,
            "src": "12647:489:12",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4051,
              "nodeType": "Block",
              "src": "13214:46:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4047,
                            "name": "addr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4040,
                            "src": "13247:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 4046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13239:7:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": "uint160"
                        },
                        "id": 4048,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13239:13:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 4045,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13231:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 4049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13231:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 4044,
                  "id": 4050,
                  "nodeType": "Return",
                  "src": "13224:29:12"
                }
              ]
            },
            "documentation": null,
            "id": 4052,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toPayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4041,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4040,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4052,
                  "src": "13161:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4039,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13161:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13160:14:12"
            },
            "returnParameters": {
              "id": 4044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4043,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4052,
                  "src": "13197:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 4042,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13197:15:12",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13196:17:12"
            },
            "scope": 4053,
            "src": "13142:118:12",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4054,
        "src": "1134:12128:12"
      }
    ],
    "src": "0:13263:12"
  },
  "legacyAST": {
    "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/ShortNameClaims.sol",
    "exportedSymbols": {
      "ShortNameClaims": [
        4053
      ]
    },
    "id": 4054,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 3077,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:12"
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/BaseRegistrar.sol",
        "file": "./BaseRegistrar.sol",
        "id": 3078,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 107,
        "src": "25:29:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/StringUtils.sol",
        "file": "./StringUtils.sol",
        "id": 3079,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 4415,
        "src": "55:27:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/makoto/work/ens/ethregistrar/contracts/PriceOracle.sol",
        "file": "./PriceOracle.sol",
        "id": 3080,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 2279,
        "src": "83:27:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/buffer/contracts/Buffer.sol",
        "file": "@ensdomains/buffer/contracts/Buffer.sol",
        "id": 3081,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 5085,
        "src": "112:49:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "file": "@ensdomains/dnssec-oracle/contracts/BytesUtils.sol",
        "id": 3082,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 5806,
        "src": "162:60:12",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/access/Roles.sol",
        "file": "openzeppelin-solidity/contracts/access/Roles.sol",
        "id": 3083,
        "nodeType": "ImportDirective",
        "scope": 4054,
        "sourceUnit": 12001,
        "src": "223:58:12",
        "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": 4053,
        "linearizedBaseContracts": [
          4053
        ],
        "name": "ShortNameClaims",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 3086,
            "libraryName": {
              "contractScope": null,
              "id": 3084,
              "name": "Roles",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 12000,
              "src": "1171:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Roles_$12000",
                "typeString": "library Roles"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1165:27:12",
            "typeName": {
              "contractScope": null,
              "id": 3085,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11913,
              "src": "1181:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11913_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            }
          },
          {
            "constant": true,
            "id": 3089,
            "name": "REGISTRATION_PERIOD",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1198:51:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3087,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1198:4:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3331353336303030",
              "id": 3088,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1241:8:12",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_31536000_by_1",
                "typeString": "int_const 31536000"
              },
              "value": "31536000"
            },
            "visibility": "public"
          },
          {
            "id": 3092,
            "libraryName": {
              "contractScope": null,
              "id": 3090,
              "name": "Buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5084,
              "src": "1262:6:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Buffer_$5084",
                "typeString": "library Buffer"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1256:31:12",
            "typeName": {
              "contractScope": null,
              "id": 3091,
              "name": "Buffer.buffer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4620,
              "src": "1273:13:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_buffer_$4620_storage_ptr",
                "typeString": "struct Buffer.buffer"
              }
            }
          },
          {
            "id": 3095,
            "libraryName": {
              "contractScope": null,
              "id": 3093,
              "name": "BytesUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 5805,
              "src": "1298:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesUtils_$5805",
                "typeString": "library BytesUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1292:27:12",
            "typeName": {
              "id": 3094,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1313:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            }
          },
          {
            "id": 3098,
            "libraryName": {
              "contractScope": null,
              "id": 3096,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4414,
              "src": "1330:11:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$4414",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1324:29:12",
            "typeName": {
              "id": 3097,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1346:6:12",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "canonicalName": "ShortNameClaims.Phase",
            "id": 3102,
            "members": [
              {
                "id": 3099,
                "name": "OPEN",
                "nodeType": "EnumValue",
                "src": "1380:4:12"
              },
              {
                "id": 3100,
                "name": "REVIEW",
                "nodeType": "EnumValue",
                "src": "1394:6:12"
              },
              {
                "id": 3101,
                "name": "FINAL",
                "nodeType": "EnumValue",
                "src": "1410:5:12"
              }
            ],
            "name": "Phase",
            "nodeType": "EnumDefinition",
            "src": "1359:62:12"
          },
          {
            "canonicalName": "ShortNameClaims.Status",
            "id": 3107,
            "members": [
              {
                "id": 3103,
                "name": "PENDING",
                "nodeType": "EnumValue",
                "src": "1449:7:12"
              },
              {
                "id": 3104,
                "name": "APPROVED",
                "nodeType": "EnumValue",
                "src": "1466:8:12"
              },
              {
                "id": 3105,
                "name": "DECLINED",
                "nodeType": "EnumValue",
                "src": "1484:8:12"
              },
              {
                "id": 3106,
                "name": "WITHDRAWN",
                "nodeType": "EnumValue",
                "src": "1502:9:12"
              }
            ],
            "name": "Status",
            "nodeType": "EnumDefinition",
            "src": "1427:90:12"
          },
          {
            "canonicalName": "ShortNameClaims.Claim",
            "id": 3116,
            "members": [
              {
                "constant": false,
                "id": 3109,
                "name": "labelHash",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1546:17:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 3108,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1546:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3111,
                "name": "claimant",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1573:16:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3110,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1573:7:12",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3113,
                "name": "paid",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1599:9:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3112,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1599:4:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3115,
                "name": "status",
                "nodeType": "VariableDeclaration",
                "scope": 3116,
                "src": "1618:13:12",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_Status_$3107",
                  "typeString": "enum ShortNameClaims.Status"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 3114,
                  "name": "Status",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 3107,
                  "src": "1618:6:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3107",
                    "typeString": "enum ShortNameClaims.Status"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nodeType": "StructDefinition",
            "scope": 4053,
            "src": "1523:115:12",
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3118,
            "name": "owners",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1644:17:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11913_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3117,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11913,
              "src": "1644:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11913_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3120,
            "name": "ratifiers",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1667:20:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Role_$11913_storage",
              "typeString": "struct Roles.Role"
            },
            "typeName": {
              "contractScope": null,
              "id": 3119,
              "name": "Roles.Role",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 11913,
              "src": "1667:10:12",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Role_$11913_storage_ptr",
                "typeString": "struct Roles.Role"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3122,
            "name": "priceOracle",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1694:30:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_PriceOracle_$2278",
              "typeString": "contract PriceOracle"
            },
            "typeName": {
              "contractScope": null,
              "id": 3121,
              "name": "PriceOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2278,
              "src": "1694:11:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_PriceOracle_$2278",
                "typeString": "contract PriceOracle"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3124,
            "name": "registrar",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1730:30:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_BaseRegistrar_$106",
              "typeString": "contract BaseRegistrar"
            },
            "typeName": {
              "contractScope": null,
              "id": 3123,
              "name": "BaseRegistrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 106,
              "src": "1730:13:12",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                "typeString": "contract BaseRegistrar"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3128,
            "name": "claims",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1766:37:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
              "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
            },
            "typeName": {
              "id": 3127,
              "keyType": {
                "id": 3125,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1774:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1766:23:12",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim)"
              },
              "valueType": {
                "contractScope": null,
                "id": 3126,
                "name": "Claim",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 3116,
                "src": "1783:5:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                  "typeString": "struct ShortNameClaims.Claim"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3132,
            "name": "approvedNames",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1809:36:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 3131,
              "keyType": {
                "id": 3129,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1817:7:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1809:22:12",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 3130,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1826:4:12",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 3134,
            "name": "pendingClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1851:25:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3133,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1851:4:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3136,
            "name": "unresolvedClaims",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1882:28:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 3135,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "1882:4:12",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 3138,
            "name": "phase",
            "nodeType": "VariableDeclaration",
            "scope": 4053,
            "src": "1916:18:12",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_enum$_Phase_$3102",
              "typeString": "enum ShortNameClaims.Phase"
            },
            "typeName": {
              "contractScope": null,
              "id": 3137,
              "name": "Phase",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3102,
              "src": "1916:5:12",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_Phase_$3102",
                "typeString": "enum ShortNameClaims.Phase"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3150,
            "name": "ClaimSubmitted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3149,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3140,
                  "indexed": false,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "1962:14:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3139,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3142,
                  "indexed": false,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "1978:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3141,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3144,
                  "indexed": false,
                  "name": "paid",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "1993:9:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3143,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1993:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3146,
                  "indexed": false,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "2004:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3145,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2004:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3148,
                  "indexed": false,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3150,
                  "src": "2022:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3147,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2022:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1961:74:12"
            },
            "src": "1941:95:12"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 3156,
            "name": "ClaimStatusChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3155,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3152,
                  "indexed": true,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "2066:23:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3151,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2066:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3154,
                  "indexed": false,
                  "name": "status",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "2091:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Status_$3107",
                    "typeString": "enum ShortNameClaims.Status"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3153,
                    "name": "Status",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3107,
                    "src": "2091:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2065:40:12"
            },
            "src": "2041:65:12"
          },
          {
            "body": {
              "id": 3191,
              "nodeType": "Block",
              "src": "2202:170:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3165,
                      "name": "priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3122,
                      "src": "2212:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2278",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3166,
                      "name": "_priceOracle",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3158,
                      "src": "2226:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_PriceOracle_$2278",
                        "typeString": "contract PriceOracle"
                      }
                    },
                    "src": "2212:26:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2278",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "id": 3168,
                  "nodeType": "ExpressionStatement",
                  "src": "2212:26:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3171,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3169,
                      "name": "registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3124,
                      "src": "2248:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3170,
                      "name": "_registrar",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3160,
                      "src": "2260:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                        "typeString": "contract BaseRegistrar"
                      }
                    },
                    "src": "2248:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "id": 3172,
                  "nodeType": "ExpressionStatement",
                  "src": "2248:22:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3176,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3173,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3138,
                      "src": "2280:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3174,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3102,
                        "src": "2288:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3175,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "OPEN",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2288:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "2280:18:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3177,
                  "nodeType": "ExpressionStatement",
                  "src": "2280:18:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3181,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 13010,
                          "src": "2320:3:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 3182,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2320:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3178,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3118,
                        "src": "2309:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3180,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2309:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3183,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2309:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3184,
                  "nodeType": "ExpressionStatement",
                  "src": "2309:22:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3188,
                        "name": "_ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3162,
                        "src": "2355:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3185,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3120,
                        "src": "2341:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3187,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2341:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3189,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2341:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3190,
                  "nodeType": "ExpressionStatement",
                  "src": "2341:24:12"
                }
              ]
            },
            "documentation": null,
            "id": 3192,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3163,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3158,
                  "name": "_priceOracle",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2124:24:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_PriceOracle_$2278",
                    "typeString": "contract PriceOracle"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3157,
                    "name": "PriceOracle",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2278,
                    "src": "2124:11:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_PriceOracle_$2278",
                      "typeString": "contract PriceOracle"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3160,
                  "name": "_registrar",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2150:24:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                    "typeString": "contract BaseRegistrar"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3159,
                    "name": "BaseRegistrar",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 106,
                    "src": "2150:13:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                      "typeString": "contract BaseRegistrar"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3162,
                  "name": "_ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "2176:17:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3161,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2176:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2123:71:12"
            },
            "returnParameters": {
              "id": 3164,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2202:0:12"
            },
            "scope": 4053,
            "src": "2112:260:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3204,
              "nodeType": "Block",
              "src": "2399:86:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3197,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13010,
                              "src": "2428:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3198,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2428:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3195,
                            "name": "owners",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3118,
                            "src": "2417:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11913_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3196,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11999,
                          "src": "2417:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2417:22:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d75737420626520616e206f776e6572",
                        "id": 3200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2441:25:12",
                        "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": 3194,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "2409:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3201,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2409:58:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3202,
                  "nodeType": "ExpressionStatement",
                  "src": "2409:58:12"
                },
                {
                  "id": 3203,
                  "nodeType": "PlaceholderStatement",
                  "src": "2477:1:12"
                }
              ]
            },
            "documentation": null,
            "id": 3205,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3193,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2396:2:12"
            },
            "src": "2378:107:12",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3217,
              "nodeType": "Block",
              "src": "2515:91:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3210,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13010,
                              "src": "2547:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3211,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2547:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 3208,
                            "name": "ratifiers",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3120,
                            "src": "2533:9:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Role_$11913_storage",
                              "typeString": "struct Roles.Role storage ref"
                            }
                          },
                          "id": 3209,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "has",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 11999,
                          "src": "2533:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                            "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                          }
                        },
                        "id": 3212,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2533:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "43616c6c6572206d7573742062652061207261746966696572",
                        "id": 3213,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2560:27:12",
                        "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": 3207,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "2525:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3214,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2525:63:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3215,
                  "nodeType": "ExpressionStatement",
                  "src": "2525:63:12"
                },
                {
                  "id": 3216,
                  "nodeType": "PlaceholderStatement",
                  "src": "2598:1:12"
                }
              ]
            },
            "documentation": null,
            "id": 3218,
            "name": "onlyRatifier",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3206,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2512:2:12"
            },
            "src": "2491:115:12",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3230,
              "nodeType": "Block",
              "src": "2638:72:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Phase_$3102",
                          "typeString": "enum ShortNameClaims.Phase"
                        },
                        "id": 3225,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3223,
                          "name": "phase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3138,
                          "src": "2656:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3102",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3224,
                          "name": "p",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3220,
                          "src": "2665:1:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Phase_$3102",
                            "typeString": "enum ShortNameClaims.Phase"
                          }
                        },
                        "src": "2656:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e6f7420696e207265717569726564207068617365",
                        "id": 3226,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2668:23:12",
                        "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": 3222,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "2648:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2648:44:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3228,
                  "nodeType": "ExpressionStatement",
                  "src": "2648:44:12"
                },
                {
                  "id": 3229,
                  "nodeType": "PlaceholderStatement",
                  "src": "2702:1:12"
                }
              ]
            },
            "documentation": null,
            "id": 3231,
            "name": "inPhase",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 3221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3220,
                  "name": "p",
                  "nodeType": "VariableDeclaration",
                  "scope": 3231,
                  "src": "2629:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Phase_$3102",
                    "typeString": "enum ShortNameClaims.Phase"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 3219,
                    "name": "Phase",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 3102,
                    "src": "2629:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2628:9:12"
            },
            "src": "2612:98:12",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 3244,
              "nodeType": "Block",
              "src": "2768:34:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3241,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3233,
                        "src": "2789:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3238,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3118,
                        "src": "2778:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3240,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2778:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3242,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2778:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3243,
                  "nodeType": "ExpressionStatement",
                  "src": "2778:17:12"
                }
              ]
            },
            "documentation": null,
            "id": 3245,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3236,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3235,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "2758:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2758:9:12"
              }
            ],
            "name": "addOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3234,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3233,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3245,
                  "src": "2734:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3232,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2734:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2733:15:12"
            },
            "returnParameters": {
              "id": 3237,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2768:0:12"
            },
            "scope": 4053,
            "src": "2716:86:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3258,
              "nodeType": "Block",
              "src": "2863:37:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3255,
                        "name": "owner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3247,
                        "src": "2887:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3252,
                        "name": "owners",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3118,
                        "src": "2873:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3254,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11976,
                      "src": "2873:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3256,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2873:20:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3257,
                  "nodeType": "ExpressionStatement",
                  "src": "2873:20:12"
                }
              ]
            },
            "documentation": null,
            "id": 3259,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3250,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3249,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "2853:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2853:9:12"
              }
            ],
            "name": "removeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3248,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3247,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 3259,
                  "src": "2829:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3246,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2829:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2828:15:12"
            },
            "returnParameters": {
              "id": 3251,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2863:0:12"
            },
            "scope": 4053,
            "src": "2808:92:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3272,
              "nodeType": "Block",
              "src": "2967:40:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3269,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3261,
                        "src": "2991:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3266,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3120,
                        "src": "2977:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3268,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11945,
                      "src": "2977:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2977:23:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3271,
                  "nodeType": "ExpressionStatement",
                  "src": "2977:23:12"
                }
              ]
            },
            "documentation": null,
            "id": 3273,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3264,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3263,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3218,
                  "src": "2954:12:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2954:12:12"
              }
            ],
            "name": "addRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3262,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3261,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3273,
                  "src": "2927:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3260,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2927:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2926:18:12"
            },
            "returnParameters": {
              "id": 3265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2967:0:12"
            },
            "scope": 4053,
            "src": "2906:101:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3286,
              "nodeType": "Block",
              "src": "3077:43:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3283,
                        "name": "ratifier",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3275,
                        "src": "3104:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3280,
                        "name": "ratifiers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3120,
                        "src": "3087:9:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Role_$11913_storage",
                          "typeString": "struct Roles.Role storage ref"
                        }
                      },
                      "id": 3282,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 11976,
                      "src": "3087:16:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$__$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                        "typeString": "function (struct Roles.Role storage pointer,address)"
                      }
                    },
                    "id": 3284,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3087:26:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3285,
                  "nodeType": "ExpressionStatement",
                  "src": "3087:26:12"
                }
              ]
            },
            "documentation": null,
            "id": 3287,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3278,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3277,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3218,
                  "src": "3064:12:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "3064:12:12"
              }
            ],
            "name": "removeRatifier",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3276,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3275,
                  "name": "ratifier",
                  "nodeType": "VariableDeclaration",
                  "scope": 3287,
                  "src": "3037:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3274,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3037:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3036:18:12"
            },
            "returnParameters": {
              "id": 3279,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3077:0:12"
            },
            "scope": 4053,
            "src": "3013:107:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3320,
              "nodeType": "Block",
              "src": "3607:133:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3305,
                                    "name": "claimed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3289,
                                    "src": "3667:7:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3304,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3661:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3306,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3661:14:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3303,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13004,
                              "src": "3651:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3307,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3651:25:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 3309,
                                "name": "dnsname",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3291,
                                "src": "3688:7:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3308,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13004,
                              "src": "3678:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3310,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3678:18:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 3311,
                            "name": "claimant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3293,
                            "src": "3698:8:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3314,
                                    "name": "email",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3295,
                                    "src": "3724:5:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 3313,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "3718:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": "bytes"
                                },
                                "id": 3315,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3718:12:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 3312,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13004,
                              "src": "3708:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 3316,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3708:23:12",
                            "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": 3301,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12997,
                            "src": "3634:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 3302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3634:16:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 3317,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3634:98:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 3300,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13004,
                      "src": "3624:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 3318,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3624:109:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 3299,
                  "id": 3319,
                  "nodeType": "Return",
                  "src": "3617:116:12"
                }
              ]
            },
            "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": 3321,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "computeClaimId",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3289,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3494:21:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3288,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3494:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3291,
                  "name": "dnsname",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3517:20:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3290,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3293,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3539:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3292,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3539:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3295,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3557:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3294,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3557:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3493:84:12"
            },
            "returnParameters": {
              "id": 3299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3298,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3321,
                  "src": "3598:7:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3297,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3598:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3597:9:12"
            },
            "scope": 4053,
            "src": "3470:270:12",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3335,
              "nodeType": "Block",
              "src": "3988:74:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3330,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3323,
                        "src": "4023:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4032:1:12",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "id": 3332,
                        "name": "REGISTRATION_PERIOD",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3089,
                        "src": "4035:19:12",
                        "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": 3328,
                        "name": "priceOracle",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3122,
                        "src": "4005:11:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_PriceOracle_$2278",
                          "typeString": "contract PriceOracle"
                        }
                      },
                      "id": 3329,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "price",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2277,
                      "src": "4005:17:12",
                      "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": 3333,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4005:50:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 3327,
                  "id": 3334,
                  "nodeType": "Return",
                  "src": "3998:57:12"
                }
              ]
            },
            "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": 3336,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getClaimCost",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3323,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3336,
                  "src": "3939:21:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3322,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3939:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3938:23:12"
            },
            "returnParameters": {
              "id": 3327,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3326,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 3336,
                  "src": "3982:4:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3325,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3982:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3981:6:12"
            },
            "scope": 4053,
            "src": "3917:145:12",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3359,
              "nodeType": "Block",
              "src": "4779:111:12",
              "statements": [
                {
                  "assignments": [
                    3346
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3346,
                      "name": "claimed",
                      "nodeType": "VariableDeclaration",
                      "scope": 3359,
                      "src": "4789:21:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string"
                      },
                      "typeName": {
                        "id": 3345,
                        "name": "string",
                        "nodeType": "ElementaryTypeName",
                        "src": "4789:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_storage_ptr",
                          "typeString": "string"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3351,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3348,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3338,
                        "src": "4822:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 3349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4828:1:12",
                        "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": 3347,
                      "name": "getLabel",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4038,
                      "src": "4813:8:12",
                      "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": 3350,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4813:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4789:41:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3353,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3346,
                        "src": "4852:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3354,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3338,
                        "src": "4861:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3355,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3340,
                        "src": "4867:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3356,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3342,
                        "src": "4877:5:12",
                        "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": 3352,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3972,
                      "src": "4840:11:12",
                      "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": 3357,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4840:43:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3358,
                  "nodeType": "ExpressionStatement",
                  "src": "4840:43:12"
                }
              ]
            },
            "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": 3360,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitExactClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3338,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3360,
                  "src": "4706:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3337,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4706:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3340,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3360,
                  "src": "4725:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3339,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4725:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3342,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3360,
                  "src": "4743:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3341,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4743:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4705:58:12"
            },
            "returnParameters": {
              "id": 3344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4779:0:12"
            },
            "scope": 4053,
            "src": "4680:210:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3424,
              "nodeType": "Block",
              "src": "5609:347:12",
              "statements": [
                {
                  "assignments": [
                    3370
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3370,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3424,
                      "src": "5619:23:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3369,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5619:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3377,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3373,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3362,
                            "src": "5660:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3374,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5666:1:12",
                            "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": 3372,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4038,
                          "src": "5651:8:12",
                          "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": 3375,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5651:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3371,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5645:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5645:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5619:50:12"
                },
                {
                  "assignments": [
                    3379
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3379,
                      "name": "secondLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3424,
                      "src": "5679:24:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3378,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5679:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3386,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3382,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3362,
                            "src": "5721:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "31",
                            "id": 3383,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5727:1:12",
                            "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": 3381,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4038,
                          "src": "5712:8:12",
                          "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": 3384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5712:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5706:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5706:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5679:51:12"
                },
                {
                  "assignments": [
                    3390
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3390,
                      "name": "buf",
                      "nodeType": "VariableDeclaration",
                      "scope": 3424,
                      "src": "5740:24:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                        "typeString": "struct Buffer.buffer"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3389,
                        "name": "Buffer.buffer",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 4620,
                        "src": "5740:13:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_storage_ptr",
                          "typeString": "struct Buffer.buffer"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3391,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5740:24:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3399,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3395,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3370,
                            "src": "5783:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3396,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5783:17:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "+",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3397,
                            "name": "secondLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3379,
                            "src": "5803:11:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "5803:18:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5783:38:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3392,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "5774:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3394,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "init",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4655,
                      "src": "5774:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4620_memory_ptr_$_t_uint256_$returns$_t_struct$_buffer_$4620_memory_ptr_$bound_to$_t_struct$_buffer_$4620_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,uint256) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5774:48:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3401,
                  "nodeType": "ExpressionStatement",
                  "src": "5774:48:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3405,
                        "name": "firstLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3370,
                        "src": "5843:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3402,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "5832:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3404,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4856,
                      "src": "5832:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4620_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4620_memory_ptr_$bound_to$_t_struct$_buffer_$4620_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3406,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5832:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3407,
                  "nodeType": "ExpressionStatement",
                  "src": "5832:22:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3411,
                        "name": "secondLabel",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3379,
                        "src": "5875:11:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3408,
                        "name": "buf",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3390,
                        "src": "5864:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                          "typeString": "struct Buffer.buffer memory"
                        }
                      },
                      "id": 3410,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4856,
                      "src": "5864:10:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_struct$_buffer_$4620_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_struct$_buffer_$4620_memory_ptr_$bound_to$_t_struct$_buffer_$4620_memory_ptr_$",
                        "typeString": "function (struct Buffer.buffer memory,bytes memory) pure returns (struct Buffer.buffer memory)"
                      }
                    },
                    "id": 3412,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5864:23:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                      "typeString": "struct Buffer.buffer memory"
                    }
                  },
                  "id": 3413,
                  "nodeType": "ExpressionStatement",
                  "src": "5864:23:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3416,
                              "name": "buf",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3390,
                              "src": "5917:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_buffer_$4620_memory_ptr",
                                "typeString": "struct Buffer.buffer memory"
                              }
                            },
                            "id": 3417,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "buf",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 4617,
                            "src": "5917:7:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3415,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5910:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3418,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5910:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3419,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3362,
                        "src": "5927:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3420,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3364,
                        "src": "5933:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3421,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3366,
                        "src": "5943:5:12",
                        "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": 3414,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3972,
                      "src": "5898:11:12",
                      "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": 3422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5898:51:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3423,
                  "nodeType": "ExpressionStatement",
                  "src": "5898:51:12"
                }
              ]
            },
            "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": 3425,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitCombinedClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3362,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3425,
                  "src": "5536:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3361,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5536:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3364,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3425,
                  "src": "5555:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3363,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5555:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3366,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3425,
                  "src": "5573:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3365,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5573:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5535:58:12"
            },
            "returnParameters": {
              "id": 3368,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5609:0:12"
            },
            "scope": 4053,
            "src": "5507:449:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3472,
              "nodeType": "Block",
              "src": "6675:240:12",
              "statements": [
                {
                  "assignments": [
                    3435
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3435,
                      "name": "firstLabel",
                      "nodeType": "VariableDeclaration",
                      "scope": 3472,
                      "src": "6685:23:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 3434,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "6685:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3442,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 3438,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3427,
                            "src": "6726:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 3439,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6732:1:12",
                            "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": 3437,
                          "name": "getLabel",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4038,
                          "src": "6717:8:12",
                          "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": 3440,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6717:17:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3436,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6711:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                        "typeString": "type(bytes storage pointer)"
                      },
                      "typeName": "bytes"
                    },
                    "id": 3441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6711:24:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6685:50:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 3449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3446,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3435,
                                "src": "6771:10:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3447,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "6771:17:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "33",
                              "id": 3448,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6791:1:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_3_by_1",
                                "typeString": "int_const 3"
                              },
                              "value": "3"
                            },
                            "src": "6771:21:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "657468",
                                "id": 3451,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6800:5:12",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                },
                                "value": "eth"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_stringliteral_4f5b812789fc606be1b3b16908db13fc7a9adf7ca72641f84d75b47069d3d7f0",
                                  "typeString": "literal_string \"eth\""
                                }
                              ],
                              "id": 3450,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6794:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3452,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6794:12:12",
                            "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": 3444,
                            "name": "firstLabel",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3435,
                            "src": "6753:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3445,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "equals",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5350,
                          "src": "6753:17:12",
                          "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": 3453,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6753:54:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3443,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "6745:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3454,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6745:63:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3455,
                  "nodeType": "ExpressionStatement",
                  "src": "6745:63:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 3460,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "6858:1:12",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 3464,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3461,
                                    "name": "firstLabel",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3435,
                                    "src": "6861:10:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  "id": 3462,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "6861:17:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "33",
                                  "id": 3463,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6881:1:12",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_3_by_1",
                                    "typeString": "int_const 3"
                                  },
                                  "value": "3"
                                },
                                "src": "6861:21:12",
                                "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": 3458,
                                "name": "firstLabel",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3435,
                                "src": "6837:10:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              },
                              "id": 3459,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "substring",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5582,
                              "src": "6837:20:12",
                              "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": 3465,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6837:46:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          ],
                          "id": 3457,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6830:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                            "typeString": "type(string storage pointer)"
                          },
                          "typeName": "string"
                        },
                        "id": 3466,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6830:54:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3467,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3427,
                        "src": "6886:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3468,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3429,
                        "src": "6892:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3469,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3431,
                        "src": "6902:5:12",
                        "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": 3456,
                      "name": "handleClaim",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3972,
                      "src": "6818:11:12",
                      "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": 3470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6818:90:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3471,
                  "nodeType": "ExpressionStatement",
                  "src": "6818:90:12"
                }
              ]
            },
            "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": 3473,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "submitPrefixClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3432,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3427,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "6602:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3426,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6602:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3429,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "6621:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3428,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6621:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3431,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3473,
                  "src": "6639:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3430,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "6639:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6601:58:12"
            },
            "returnParameters": {
              "id": 3433,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6675:0:12"
            },
            "scope": 4053,
            "src": "6575:340:12",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3487,
              "nodeType": "Block",
              "src": "7087:37:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3485,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3482,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3138,
                      "src": "7097:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3483,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3102,
                        "src": "7105:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3484,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "REVIEW",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7105:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7097:20:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3486,
                  "nodeType": "ExpressionStatement",
                  "src": "7097:20:12"
                }
              ]
            },
            "documentation": "@dev Closes the claim submission period.\n     Callable only by the owner.",
            "id": 3488,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3476,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3475,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "7057:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7057:9:12"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3478,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "7075:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7075:10:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3480,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3477,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "7067:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7067:19:12"
              }
            ],
            "name": "closeClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3474,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7045:2:12"
            },
            "returnParameters": {
              "id": 3481,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7087:0:12"
            },
            "scope": 4053,
            "src": "7025:99:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3508,
              "nodeType": "Block",
              "src": "7374:133:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3500,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3498,
                          "name": "pendingClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3134,
                          "src": "7452:13:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7469:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7452:18:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3497,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "7444:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3501,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7444:27:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3502,
                  "nodeType": "ExpressionStatement",
                  "src": "7444:27:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 3503,
                      "name": "phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3138,
                      "src": "7481:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3504,
                        "name": "Phase",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3102,
                        "src": "7489:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                          "typeString": "type(enum ShortNameClaims.Phase)"
                        }
                      },
                      "id": 3505,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "FINAL",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "7489:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Phase_$3102",
                        "typeString": "enum ShortNameClaims.Phase"
                      }
                    },
                    "src": "7481:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  },
                  "id": 3507,
                  "nodeType": "ExpressionStatement",
                  "src": "7481:19:12"
                }
              ]
            },
            "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": 3509,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3491,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3490,
                  "name": "onlyRatifier",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3218,
                  "src": "7339:12:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7339:12:12"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3493,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "7360:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3494,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7360:12:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3495,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3492,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "7352:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7352:21:12"
              }
            ],
            "name": "ratifyClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3489,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7327:2:12"
            },
            "returnParameters": {
              "id": 3496,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7374:0:12"
            },
            "scope": 4053,
            "src": "7306:201:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3531,
              "nodeType": "Block",
              "src": "7720:92:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3521,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 3519,
                          "name": "unresolvedClaims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3136,
                          "src": "7738:16:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3520,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7758:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7738:21:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3518,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "7730:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7730:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3523,
                  "nodeType": "ExpressionStatement",
                  "src": "7730:30:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3526,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13010,
                              "src": "7793:3:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 3527,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "7793:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 3525,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4052,
                          "src": "7783:9:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3528,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7783:21:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 3524,
                      "name": "selfdestruct",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13018,
                      "src": "7770:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable)"
                      }
                    },
                    "id": 3529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7770:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3530,
                  "nodeType": "ExpressionStatement",
                  "src": "7770:35:12"
                }
              ]
            },
            "documentation": "@dev Cleans up the contract, after all claims are resolved.\n     Callable only by the owner, and only in final state.",
            "id": 3532,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 3512,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3511,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3205,
                  "src": "7689:9:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7689:9:12"
              },
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3514,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "7707:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "7707:11:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3516,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3513,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "7699:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7699:20:12"
              }
            ],
            "name": "destroy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3510,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7677:2:12"
            },
            "returnParameters": {
              "id": 3517,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7720:0:12"
            },
            "scope": 4053,
            "src": "7661:151:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3637,
              "nodeType": "Block",
              "src": "8221:983:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3554,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3546,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13010,
                                "src": "8296:3:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3547,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8296:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3544,
                              "name": "owners",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3118,
                              "src": "8285:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11913_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3545,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11999,
                            "src": "8285:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3548,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8285:22:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3551,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13010,
                                "src": "8325:3:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3552,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "8325:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 3549,
                              "name": "ratifiers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3120,
                              "src": "8311:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Role_$11913_storage",
                                "typeString": "struct Roles.Role storage ref"
                              }
                            },
                            "id": 3550,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "has",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 11999,
                            "src": "8311:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_struct$_Role_$11913_storage_ptr_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_Role_$11913_storage_ptr_$",
                              "typeString": "function (struct Roles.Role storage pointer,address) view returns (bool)"
                            }
                          },
                          "id": 3553,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8311:25:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8285:51:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3543,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "8277:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3555,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8277:60:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3556,
                  "nodeType": "ExpressionStatement",
                  "src": "8277:60:12"
                },
                {
                  "assignments": [
                    3558
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3558,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3637,
                      "src": "8348:18:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3557,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3116,
                        "src": "8348:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3562,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3559,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3128,
                      "src": "8369:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3561,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3560,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3534,
                      "src": "8376:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8369:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8348:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3567,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3564,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3558,
                            "src": "8402:5:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3565,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3113,
                          "src": "8402:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8415:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8402:14:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8418:17:12",
                        "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": 3563,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "8394:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8394:42:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3570,
                  "nodeType": "ExpressionStatement",
                  "src": "8394:42:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3575,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3571,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3558,
                        "src": "8450:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3572,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "8450:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3573,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "8466:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "8466:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "8450:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3587,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3583,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3558,
                          "src": "8634:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3584,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3115,
                        "src": "8634:12:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3585,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3107,
                          "src": "8650:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "APPROVED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "8650:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "8634:31:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 3596,
                    "nodeType": "IfStatement",
                    "src": "8631:166:12",
                    "trueBody": {
                      "id": 3595,
                      "nodeType": "Block",
                      "src": "8667:130:12",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 3593,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3588,
                                "name": "approvedNames",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3132,
                                "src": "8748:13:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                  "typeString": "mapping(bytes32 => bool)"
                                }
                              },
                              "id": 3591,
                              "indexExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3589,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3558,
                                  "src": "8762:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3590,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "labelHash",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3109,
                                "src": "8762:15:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "nodeType": "IndexAccess",
                              "src": "8748:30:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3592,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8781:5:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "8748:38:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 3594,
                          "nodeType": "ExpressionStatement",
                          "src": "8748:38:12"
                        }
                      ]
                    }
                  },
                  "id": 3597,
                  "nodeType": "IfStatement",
                  "src": "8447:350:12",
                  "trueBody": {
                    "id": 3582,
                    "nodeType": "Block",
                    "src": "8482:143:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "8569:15:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3576,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3134,
                            "src": "8569:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3578,
                        "nodeType": "ExpressionStatement",
                        "src": "8569:15:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3580,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": false,
                          "src": "8596:18:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3579,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "8596:16:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3581,
                        "nodeType": "ExpressionStatement",
                        "src": "8596:18:12"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 3598,
                    "name": "approved",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 3536,
                    "src": "8918:8:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3615,
                  "nodeType": "IfStatement",
                  "src": "8915:125:12",
                  "trueBody": {
                    "id": 3614,
                    "nodeType": "Block",
                    "src": "8928:112:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 3604,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "!",
                              "prefix": true,
                              "src": "8948:31:12",
                              "subExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 3600,
                                  "name": "approvedNames",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3132,
                                  "src": "8949:13:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                    "typeString": "mapping(bytes32 => bool)"
                                  }
                                },
                                "id": 3603,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3601,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3558,
                                    "src": "8963:5:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3602,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3109,
                                  "src": "8963:15:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8949:30:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3599,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              13013,
                              13014
                            ],
                            "referencedDeclaration": 13013,
                            "src": "8940:7:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 3605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8940:40:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3606,
                        "nodeType": "ExpressionStatement",
                        "src": "8940:40:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3607,
                              "name": "approvedNames",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3132,
                              "src": "8992:13:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                                "typeString": "mapping(bytes32 => bool)"
                              }
                            },
                            "id": 3610,
                            "indexExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3608,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3558,
                                "src": "9006:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3609,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "labelHash",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3109,
                              "src": "9006:15:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "8992:30:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 3611,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9025:4:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "8992:37:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 3613,
                        "nodeType": "ExpressionStatement",
                        "src": "8992:37:12"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    3617
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3617,
                      "name": "status",
                      "nodeType": "VariableDeclaration",
                      "scope": 3637,
                      "src": "9050:13:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3616,
                        "name": "Status",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3107,
                        "src": "9050:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3624,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "id": 3618,
                      "name": "approved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3536,
                      "src": "9066:8:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3621,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "9091:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3622,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "DECLINED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9091:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "id": 3623,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "9066:40:12",
                    "trueExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3619,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "9075:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3620,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9075:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9050:56:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 3625,
                          "name": "claims",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3128,
                          "src": "9116:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                            "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                          }
                        },
                        "id": 3627,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 3626,
                          "name": "claimId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3534,
                          "src": "9123:7:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9116:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage",
                          "typeString": "struct ShortNameClaims.Claim storage ref"
                        }
                      },
                      "id": 3628,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "9116:22:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 3629,
                      "name": "status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3617,
                      "src": "9141:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "9116:31:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    }
                  },
                  "id": 3631,
                  "nodeType": "ExpressionStatement",
                  "src": "9116:31:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3633,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3534,
                        "src": "9181:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3634,
                        "name": "status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3617,
                        "src": "9190:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3632,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3156,
                      "src": "9162:18:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3107_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3635,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9162:35:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3636,
                  "nodeType": "EmitStatement",
                  "src": "9157:40:12"
                }
              ]
            },
            "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": 3638,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3539,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "8207:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3540,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "REVIEW",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "8207:12:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3541,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3538,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "8199:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8199:21:12"
              }
            ],
            "name": "setClaimStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3534,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "8160:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3533,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8160:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3536,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3638,
                  "src": "8177:13:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 3535,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8177:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8159:32:12"
            },
            "returnParameters": {
              "id": 3542,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8221:0:12"
            },
            "scope": 4053,
            "src": "8136:1068:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3687,
              "nodeType": "Block",
              "src": "9559:226:12",
              "statements": [
                {
                  "body": {
                    "id": 3665,
                    "nodeType": "Block",
                    "src": "9611:58:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3659,
                                "name": "approved",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3641,
                                "src": "9640:8:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3661,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3660,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3648,
                                "src": "9649:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9640:11:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 3662,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9653:4:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3658,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3638,
                            "src": "9625:14:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3663,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9625:33:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3664,
                        "nodeType": "ExpressionStatement",
                        "src": "9625:33:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3651,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3648,
                      "src": "9585:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3652,
                        "name": "approved",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3641,
                        "src": "9589:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9589:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9585:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3666,
                  "initializationExpression": {
                    "assignments": [
                      3648
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3648,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3666,
                        "src": "9573:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3647,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9573:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3650,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9582:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9573:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3656,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9606:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3655,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3648,
                        "src": "9606:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3657,
                    "nodeType": "ExpressionStatement",
                    "src": "9606:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "9569:100:12"
                },
                {
                  "body": {
                    "id": 3685,
                    "nodeType": "Block",
                    "src": "9720:59:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3679,
                                "name": "declined",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3644,
                                "src": "9749:8:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3681,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3680,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3668,
                                "src": "9758:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9749:11:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 3682,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9762:5:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 3678,
                            "name": "setClaimStatus",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3638,
                            "src": "9734:14:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bool_$returns$__$",
                              "typeString": "function (bytes32,bool)"
                            }
                          },
                          "id": 3683,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9734:34:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3684,
                        "nodeType": "ExpressionStatement",
                        "src": "9734:34:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3674,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3671,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3668,
                      "src": "9694:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3672,
                        "name": "declined",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3644,
                        "src": "9698:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9698:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9694:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3686,
                  "initializationExpression": {
                    "assignments": [
                      3668
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3668,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3686,
                        "src": "9682:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3667,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "9682:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3670,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9691:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "9682:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "9715:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3675,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3668,
                        "src": "9715:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3677,
                    "nodeType": "ExpressionStatement",
                    "src": "9715:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "9678:101:12"
                }
              ]
            },
            "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": 3688,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setClaimStatuses",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3645,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3641,
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "9492:27:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3639,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9492:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3640,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9492:9:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3644,
                  "name": "declined",
                  "nodeType": "VariableDeclaration",
                  "scope": 3688,
                  "src": "9521:27:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3642,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "9521:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3643,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9521:9:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9491:58:12"
            },
            "returnParameters": {
              "id": 3646,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9559:0:12"
            },
            "scope": 4053,
            "src": "9466:319:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3769,
              "nodeType": "Block",
              "src": "10077:667:12",
              "statements": [
                {
                  "assignments": [
                    3698
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3698,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3769,
                      "src": "10087:18:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3697,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3116,
                        "src": "10087:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3702,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3699,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3128,
                      "src": "10108:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3701,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3700,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3690,
                      "src": "10115:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "10108:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10087:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3707,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3704,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3698,
                            "src": "10141:5:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3705,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3113,
                          "src": "10141:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10154:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10141:14:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d206e6f7420666f756e64",
                        "id": 3708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10157:17:12",
                        "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": 3703,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "10133:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10133:42:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3710,
                  "nodeType": "ExpressionStatement",
                  "src": "10133:42:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3715,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3711,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3698,
                        "src": "10189:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3712,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "10189:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3713,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "10205:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3714,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "APPROVED",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10205:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "10189:31:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      },
                      "id": 3743,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3739,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3698,
                          "src": "10400:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3740,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "status",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3115,
                        "src": "10400:12:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3741,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3107,
                          "src": "10416:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3742,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "DECLINED",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "10416:15:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      },
                      "src": "10400:31:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 3758,
                      "nodeType": "Block",
                      "src": "10510:167:12",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "66616c7365",
                                "id": 3755,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10660:5:12",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "false"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "id": 3754,
                              "name": "assert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12999,
                              "src": "10653:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                                "typeString": "function (bool) pure"
                              }
                            },
                            "id": 3756,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10653:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3757,
                          "nodeType": "ExpressionStatement",
                          "src": "10653:13:12"
                        }
                      ]
                    },
                    "id": 3759,
                    "nodeType": "IfStatement",
                    "src": "10397:280:12",
                    "trueBody": {
                      "id": 3753,
                      "nodeType": "Block",
                      "src": "10433:71:12",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3749,
                                  "name": "claim",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3698,
                                  "src": "10482:5:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                    "typeString": "struct ShortNameClaims.Claim memory"
                                  }
                                },
                                "id": 3750,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "paid",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 3113,
                                "src": "10482:10:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 3745,
                                      "name": "claim",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3698,
                                      "src": "10457:5:12",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                        "typeString": "struct ShortNameClaims.Claim memory"
                                      }
                                    },
                                    "id": 3746,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "claimant",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 3111,
                                    "src": "10457:14:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 3744,
                                  "name": "toPayable",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4052,
                                  "src": "10447:9:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                    "typeString": "function (address) pure returns (address payable)"
                                  }
                                },
                                "id": 3747,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "10447:25:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address_payable",
                                  "typeString": "address payable"
                                }
                              },
                              "id": 3748,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "transfer",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10447:34:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                                "typeString": "function (uint256)"
                              }
                            },
                            "id": 3751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10447:46:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 3752,
                          "nodeType": "ExpressionStatement",
                          "src": "10447:46:12"
                        }
                      ]
                    }
                  },
                  "id": 3760,
                  "nodeType": "IfStatement",
                  "src": "10186:491:12",
                  "trueBody": {
                    "id": 3738,
                    "nodeType": "Block",
                    "src": "10222:169:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 3720,
                                    "name": "claim",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3698,
                                    "src": "10263:5:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                      "typeString": "struct ShortNameClaims.Claim memory"
                                    }
                                  },
                                  "id": 3721,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "labelHash",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3109,
                                  "src": "10263:15:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 3719,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "10255:7:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": "uint256"
                              },
                              "id": 3722,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10255:24:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3723,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3698,
                                "src": "10281:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3724,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "claimant",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3111,
                              "src": "10281:14:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 3725,
                              "name": "REGISTRATION_PERIOD",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3089,
                              "src": "10297:19:12",
                              "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": 3716,
                              "name": "registrar",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3124,
                              "src": "10236:9:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                                "typeString": "contract BaseRegistrar"
                              }
                            },
                            "id": 3718,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "register",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 89,
                            "src": "10236:18:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256,address,uint256) external returns (uint256)"
                            }
                          },
                          "id": 3726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10236:81:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3727,
                        "nodeType": "ExpressionStatement",
                        "src": "10236:81:12"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3734,
                                "name": "claim",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3698,
                                "src": "10369:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                  "typeString": "struct ShortNameClaims.Claim memory"
                                }
                              },
                              "id": 3735,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "paid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 3113,
                              "src": "10369:10:12",
                              "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": 3729,
                                      "name": "registrar",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 3124,
                                      "src": "10341:9:12",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_BaseRegistrar_$106",
                                        "typeString": "contract BaseRegistrar"
                                      }
                                    },
                                    "id": 3730,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "owner",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 12223,
                                    "src": "10341:15:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                      "typeString": "function () view external returns (address)"
                                    }
                                  },
                                  "id": 3731,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10341:17:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 3728,
                                "name": "toPayable",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4052,
                                "src": "10331:9:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                                  "typeString": "function (address) pure returns (address payable)"
                                }
                              },
                              "id": 3732,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "10331:28:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3733,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "10331:37:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3736,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10331:49:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3737,
                        "nodeType": "ExpressionStatement",
                        "src": "10331:49:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3762,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "--",
                    "prefix": false,
                    "src": "10687:18:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3761,
                      "name": "unresolvedClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3136,
                      "src": "10687:16:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3763,
                  "nodeType": "ExpressionStatement",
                  "src": "10687:18:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3767,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "10715:22:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3764,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3128,
                        "src": "10722:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3766,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3765,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3690,
                        "src": "10729:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "10722:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3768,
                  "nodeType": "ExpressionStatement",
                  "src": "10715:22:12"
                }
              ]
            },
            "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": 3770,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3693,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "10064:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "FINAL",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "10064:11:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3695,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3692,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "10056:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "10056:20:12"
              }
            ],
            "name": "resolveClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3690,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3770,
                  "src": "10032:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3689,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10032:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10031:17:12"
            },
            "returnParameters": {
              "id": 3696,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10077:0:12"
            },
            "scope": 4053,
            "src": "10010:734:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 3795,
              "nodeType": "Block",
              "src": "10965:108:12",
              "statements": [
                {
                  "body": {
                    "id": 3793,
                    "nodeType": "Block",
                    "src": "11017:50:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 3788,
                                "name": "claimIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3773,
                                "src": "11044:8:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 3790,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 3789,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3777,
                                "src": "11053:1:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11044:11:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 3787,
                            "name": "resolveClaim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3770,
                            "src": "11031:12:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 3791,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11031:25:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3792,
                        "nodeType": "ExpressionStatement",
                        "src": "11031:25:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3783,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3780,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3777,
                      "src": "10991:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3781,
                        "name": "claimIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3773,
                        "src": "10995:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      "id": 3782,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "10995:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10991:19:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 3794,
                  "initializationExpression": {
                    "assignments": [
                      3777
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3777,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 3794,
                        "src": "10979:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3776,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "10979:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3779,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3778,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10988:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10979:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3785,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "11012:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3784,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3777,
                        "src": "11012:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3786,
                    "nodeType": "ExpressionStatement",
                    "src": "11012:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "10975:92:12"
                }
              ]
            },
            "documentation": "@dev Resolves multiple claims. Callable by anyone, only in the final phase.\n@param claimIds A list of claim IDs to resolve.",
            "id": 3796,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "resolveClaims",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3774,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3773,
                  "name": "claimIds",
                  "nodeType": "VariableDeclaration",
                  "scope": 3796,
                  "src": "10927:27:12",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 3771,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "10927:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 3772,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10927:9:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10926:29:12"
            },
            "returnParameters": {
              "id": 3775,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10965:0:12"
            },
            "scope": 4053,
            "src": "10904:169:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3849,
              "nodeType": "Block",
              "src": "11311:421:12",
              "statements": [
                {
                  "assignments": [
                    3802
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3802,
                      "name": "claim",
                      "nodeType": "VariableDeclaration",
                      "scope": 3849,
                      "src": "11321:18:12",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                        "typeString": "struct ShortNameClaims.Claim"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 3801,
                        "name": "Claim",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 3116,
                        "src": "11321:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_storage_ptr",
                          "typeString": "struct ShortNameClaims.Claim"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3806,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 3803,
                      "name": "claims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3128,
                      "src": "11342:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                        "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                      }
                    },
                    "id": 3805,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 3804,
                      "name": "claimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3798,
                      "src": "11349:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11342:15:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11321:36:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 3812,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3808,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13010,
                            "src": "11413:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11413:10:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3810,
                            "name": "claim",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3802,
                            "src": "11427:5:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                              "typeString": "struct ShortNameClaims.Claim memory"
                            }
                          },
                          "id": 3811,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "claimant",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3111,
                          "src": "11427:14:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11413:28:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3807,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "11405:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3813,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11405:37:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3814,
                  "nodeType": "ExpressionStatement",
                  "src": "11405:37:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Status_$3107",
                      "typeString": "enum ShortNameClaims.Status"
                    },
                    "id": 3819,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3815,
                        "name": "claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3802,
                        "src": "11456:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                          "typeString": "struct ShortNameClaims.Claim memory"
                        }
                      },
                      "id": 3816,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "status",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 3115,
                      "src": "11456:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3817,
                        "name": "Status",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3107,
                        "src": "11472:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                          "typeString": "type(enum ShortNameClaims.Status)"
                        }
                      },
                      "id": 3818,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "PENDING",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11472:14:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Status_$3107",
                        "typeString": "enum ShortNameClaims.Status"
                      }
                    },
                    "src": "11456:30:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 3827,
                    "nodeType": "Block",
                    "src": "11534:43:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3825,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11548:18:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3824,
                            "name": "unresolvedClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3136,
                            "src": "11548:16:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3826,
                        "nodeType": "ExpressionStatement",
                        "src": "11548:18:12"
                      }
                    ]
                  },
                  "id": 3828,
                  "nodeType": "IfStatement",
                  "src": "11453:124:12",
                  "trueBody": {
                    "id": 3823,
                    "nodeType": "Block",
                    "src": "11488:40:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 3821,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "--",
                          "prefix": false,
                          "src": "11502:15:12",
                          "subExpression": {
                            "argumentTypes": null,
                            "id": 3820,
                            "name": "pendingClaims",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3134,
                            "src": "11502:13:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 3822,
                        "nodeType": "ExpressionStatement",
                        "src": "11502:15:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3834,
                          "name": "claim",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3802,
                          "src": "11622:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                            "typeString": "struct ShortNameClaims.Claim memory"
                          }
                        },
                        "id": 3835,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "paid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3113,
                        "src": "11622:10:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3830,
                              "name": "claim",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3802,
                              "src": "11597:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Claim_$3116_memory_ptr",
                                "typeString": "struct ShortNameClaims.Claim memory"
                              }
                            },
                            "id": 3831,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "claimant",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3111,
                            "src": "11597:14:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 3829,
                          "name": "toPayable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4052,
                          "src": "11587:9:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$",
                            "typeString": "function (address) pure returns (address payable)"
                          }
                        },
                        "id": 3832,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11587:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "id": 3833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "11587:34:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 3836,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11587:46:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3837,
                  "nodeType": "ExpressionStatement",
                  "src": "11587:46:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3839,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3798,
                        "src": "11667:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 3840,
                          "name": "Status",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3107,
                          "src": "11676:6:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                            "typeString": "type(enum ShortNameClaims.Status)"
                          }
                        },
                        "id": 3841,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "WITHDRAWN",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "11676:16:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_enum$_Status_$3107",
                          "typeString": "enum ShortNameClaims.Status"
                        }
                      ],
                      "id": 3838,
                      "name": "ClaimStatusChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3156,
                      "src": "11648:18:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_enum$_Status_$3107_$returns$__$",
                        "typeString": "function (bytes32,enum ShortNameClaims.Status)"
                      }
                    },
                    "id": 3842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11648:45:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3843,
                  "nodeType": "EmitStatement",
                  "src": "11643:50:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3847,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "11703:22:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3844,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3128,
                        "src": "11710:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3846,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3845,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3798,
                        "src": "11717:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "11710:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3848,
                  "nodeType": "ExpressionStatement",
                  "src": "11703:22:12"
                }
              ]
            },
            "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": 3850,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "withdrawClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3798,
                  "name": "claimId",
                  "nodeType": "VariableDeclaration",
                  "scope": 3850,
                  "src": "11285:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3797,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11285:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11284:17:12"
            },
            "returnParameters": {
              "id": 3800,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11311:0:12"
            },
            "scope": 4053,
            "src": "11262:470:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 3971,
              "nodeType": "Block",
              "src": "11869:772:12",
              "statements": [
                {
                  "assignments": [
                    3866
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3866,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 3971,
                      "src": "11879:8:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3865,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "11879:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3870,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 3867,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "11890:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      "id": 3868,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "strlen",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4413,
                      "src": "11890:14:12",
                      "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": 3869,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11890:16:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11879:27:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 3878,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3874,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3872,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3866,
                            "src": "11924:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "33",
                            "id": 3873,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11931:1:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3_by_1",
                              "typeString": "int_const 3"
                            },
                            "value": "3"
                          },
                          "src": "11924:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3877,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3875,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3866,
                            "src": "11936:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "36",
                            "id": 3876,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11943:1:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          },
                          "src": "11936:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11924:20:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 3871,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13013,
                      "src": "11916:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 3879,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11916:29:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3880,
                  "nodeType": "ExpressionStatement",
                  "src": "11916:29:12"
                },
                {
                  "assignments": [
                    3882
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3882,
                      "name": "claimId",
                      "nodeType": "VariableDeclaration",
                      "scope": 3971,
                      "src": "11956:15:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 3881,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11956:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3889,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3884,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "11989:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3885,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3854,
                        "src": "11998:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3886,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3856,
                        "src": "12004:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3887,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3858,
                        "src": "12014:5:12",
                        "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": 3883,
                      "name": "computeClaimId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3321,
                      "src": "11974:14:12",
                      "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": 3888,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11974:46:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11956:64:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 3891,
                              "name": "claims",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3128,
                              "src": "12038:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                                "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                              }
                            },
                            "id": 3893,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 3892,
                              "name": "claimId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3882,
                              "src": "12045:7:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "12038:15:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Claim_$3116_storage",
                              "typeString": "struct ShortNameClaims.Claim storage ref"
                            }
                          },
                          "id": 3894,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "paid",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 3113,
                          "src": "12038:20:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3895,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12062:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12038:25:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436c61696d20616c7265616479207375626d6974746564",
                        "id": 3897,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12065:25:12",
                        "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": 3890,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "12030:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12030:61:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3899,
                  "nodeType": "ExpressionStatement",
                  "src": "12030:61:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 3903,
                                    "name": "name",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 3854,
                                    "src": "12189:4:12",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 3904,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "12195:1:12",
                                    "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": 3902,
                                  "name": "getLabel",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 4038,
                                  "src": "12180:8:12",
                                  "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": 3905,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12180:17:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 3901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12174:5:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": "bytes"
                            },
                            "id": 3906,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12174:24:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 3907,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12174:31:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 3908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12209:1:12",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12174:36:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4e616d65206d757374206265206120324c44",
                        "id": 3910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12212:20:12",
                        "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": 3900,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "12166:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12166:67:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3912,
                  "nodeType": "ExpressionStatement",
                  "src": "12166:67:12"
                },
                {
                  "assignments": [
                    3914
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3914,
                      "name": "price",
                      "nodeType": "VariableDeclaration",
                      "scope": 3971,
                      "src": "12244:10:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3913,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12244:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3918,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3916,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "12270:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 3915,
                      "name": "getClaimCost",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3336,
                      "src": "12257:12:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$",
                        "typeString": "function (string memory) view returns (uint256)"
                      }
                    },
                    "id": 3917,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12257:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12244:34:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 3923,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3920,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13010,
                            "src": "12296:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 3921,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12296:9:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 3922,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3914,
                          "src": "12309:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12296:18:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "496e73756666696369656e742066756e647320666f72207265736572766174696f6e",
                        "id": 3924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12316:36:12",
                        "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": 3919,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        13013,
                        13014
                      ],
                      "referencedDeclaration": 13014,
                      "src": "12288:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 3925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12288:65:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3926,
                  "nodeType": "ExpressionStatement",
                  "src": "12288:65:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 3927,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13010,
                        "src": "12366:3:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 3928,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "12366:9:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3929,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3914,
                      "src": "12378:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12366:17:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 3943,
                  "nodeType": "IfStatement",
                  "src": "12363:85:12",
                  "trueBody": {
                    "id": 3942,
                    "nodeType": "Block",
                    "src": "12385:63:12",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 3939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 3936,
                                  "name": "msg",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 13010,
                                  "src": "12419:3:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_message",
                                    "typeString": "msg"
                                  }
                                },
                                "id": 3937,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "12419:9:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 3938,
                                "name": "price",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 3914,
                                "src": "12431:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12419:17:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 3931,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 13010,
                                "src": "12399:3:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 3934,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "12399:10:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            "id": 3935,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "transfer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12399:19:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256)"
                            }
                          },
                          "id": 3940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12399:38:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 3941,
                        "nodeType": "ExpressionStatement",
                        "src": "12399:38:12"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 3944,
                        "name": "claims",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3128,
                        "src": "12458:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Claim_$3116_storage_$",
                          "typeString": "mapping(bytes32 => struct ShortNameClaims.Claim storage ref)"
                        }
                      },
                      "id": 3946,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 3945,
                        "name": "claimId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3882,
                        "src": "12465:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "12458:15:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_storage",
                        "typeString": "struct ShortNameClaims.Claim storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 3950,
                                  "name": "claimed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3852,
                                  "src": "12498:7:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                ],
                                "id": 3949,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12492:5:12",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                  "typeString": "type(bytes storage pointer)"
                                },
                                "typeName": "bytes"
                              },
                              "id": 3951,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12492:14:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 3948,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13004,
                            "src": "12482:9:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 3952,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "12482:25:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3953,
                          "name": "claimant",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3856,
                          "src": "12509:8:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 3954,
                          "name": "price",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 3914,
                          "src": "12519:5:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 3955,
                            "name": "Status",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3107,
                            "src": "12526:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Status_$3107_$",
                              "typeString": "type(enum ShortNameClaims.Status)"
                            }
                          },
                          "id": 3956,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "PENDING",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "12526:14:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Status_$3107",
                            "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_$3107",
                            "typeString": "enum ShortNameClaims.Status"
                          }
                        ],
                        "id": 3947,
                        "name": "Claim",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3116,
                        "src": "12476:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Claim_$3116_storage_ptr_$",
                          "typeString": "type(struct ShortNameClaims.Claim storage pointer)"
                        }
                      },
                      "id": 3957,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12476:65:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Claim_$3116_memory",
                        "typeString": "struct ShortNameClaims.Claim memory"
                      }
                    },
                    "src": "12458:83:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Claim_$3116_storage",
                      "typeString": "struct ShortNameClaims.Claim storage ref"
                    }
                  },
                  "id": 3959,
                  "nodeType": "ExpressionStatement",
                  "src": "12458:83:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 3961,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "++",
                    "prefix": false,
                    "src": "12551:15:12",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 3960,
                      "name": "pendingClaims",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3134,
                      "src": "12551:13:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 3962,
                  "nodeType": "ExpressionStatement",
                  "src": "12551:15:12"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 3964,
                        "name": "claimed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3852,
                        "src": "12596:7:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3965,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3854,
                        "src": "12605:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3966,
                        "name": "price",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3914,
                        "src": "12611:5:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3967,
                        "name": "claimant",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3856,
                        "src": "12618:8:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 3968,
                        "name": "email",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3858,
                        "src": "12628:5:12",
                        "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": 3963,
                      "name": "ClaimSubmitted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3150,
                      "src": "12581:14:12",
                      "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": 3969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12581:53:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 3970,
                  "nodeType": "EmitStatement",
                  "src": "12576:58:12"
                }
              ]
            },
            "documentation": null,
            "id": 3972,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 3861,
                      "name": "Phase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3102,
                      "src": "11857:5:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Phase_$3102_$",
                        "typeString": "type(enum ShortNameClaims.Phase)"
                      }
                    },
                    "id": 3862,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "OPEN",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "11857:10:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Phase_$3102",
                      "typeString": "enum ShortNameClaims.Phase"
                    }
                  }
                ],
                "id": 3863,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 3860,
                  "name": "inPhase",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 3231,
                  "src": "11849:7:12",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_enum$_Phase_$3102_$",
                    "typeString": "modifier (enum ShortNameClaims.Phase)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11849:19:12"
              }
            ],
            "name": "handleClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3859,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3852,
                  "name": "claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11759:21:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3851,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11759:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3854,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11782:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3853,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "11782:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3856,
                  "name": "claimant",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11801:16:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3855,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11801:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3858,
                  "name": "email",
                  "nodeType": "VariableDeclaration",
                  "scope": 3972,
                  "src": "11819:19:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3857,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "11819:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11758:81:12"
            },
            "returnParameters": {
              "id": 3864,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11869:0:12"
            },
            "scope": 4053,
            "src": "11738:903:12",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4037,
              "nodeType": "Block",
              "src": "12731:405:12",
              "statements": [
                {
                  "assignments": [
                    3982
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 3982,
                      "name": "offset",
                      "nodeType": "VariableDeclaration",
                      "scope": 4037,
                      "src": "12780:11:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 3981,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "12780:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 3984,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 3983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "12794:1:12",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12780:15:12"
                },
                {
                  "body": {
                    "id": 4011,
                    "nodeType": "Block",
                    "src": "12835:110:12",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 3998,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 3995,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3982,
                            "src": "12852:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 3996,
                              "name": "name",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3974,
                              "src": "12862:4:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            "id": 3997,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "12862:11:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12852:21:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 4001,
                        "nodeType": "IfStatement",
                        "src": "12849:35:12",
                        "trueBody": {
                          "expression": {
                            "argumentTypes": null,
                            "hexValue": "",
                            "id": 3999,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12882:2:12",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                              "typeString": "literal_string \"\""
                            },
                            "value": ""
                          },
                          "functionReturnParameters": 3980,
                          "id": 4000,
                          "nodeType": "Return",
                          "src": "12875:9:12"
                        }
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 4009,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 4002,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3982,
                            "src": "12898:6:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 4008,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 4005,
                                  "name": "offset",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3982,
                                  "src": "12923:6:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 4003,
                                  "name": "name",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 3974,
                                  "src": "12908:4:12",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                "id": 4004,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "readUint8",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 5391,
                                "src": "12908:14:12",
                                "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": 4006,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12908:22:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 4007,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12933:1:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "12908:26:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "12898:36:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 4010,
                        "nodeType": "ExpressionStatement",
                        "src": "12898:36:12"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 3991,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 3989,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3986,
                      "src": "12821:1:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 3990,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3976,
                      "src": "12825:3:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12821:7:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 4012,
                  "initializationExpression": {
                    "assignments": [
                      3986
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 3986,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 4012,
                        "src": "12809:6:12",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 3985,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "12809:4:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 3988,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 3987,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12818:1:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12809:10:12"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 3993,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "12830:3:12",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 3992,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3986,
                        "src": "12830:1:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 3994,
                    "nodeType": "ExpressionStatement",
                    "src": "12830:3:12"
                  },
                  "nodeType": "ForStatement",
                  "src": "12805:140:12"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 4016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 4013,
                      "name": "offset",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 3982,
                      "src": "12998:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 4014,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3974,
                        "src": "13008:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 4015,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "13008:11:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12998:21:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 4019,
                  "nodeType": "IfStatement",
                  "src": "12995:35:12",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "hexValue": "",
                      "id": 4017,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "string",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13028:2:12",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                        "typeString": "literal_string \"\""
                      },
                      "value": ""
                    },
                    "functionReturnParameters": 3980,
                    "id": 4018,
                    "nodeType": "Return",
                    "src": "13021:9:12"
                  }
                },
                {
                  "assignments": [
                    4021
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 4021,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 4037,
                      "src": "13040:8:12",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 4020,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "13040:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 4026,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 4024,
                        "name": "offset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3982,
                        "src": "13066:6:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 4022,
                        "name": "name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 3974,
                        "src": "13051:4:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 4023,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readUint8",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5391,
                      "src": "13051:14:12",
                      "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": 4025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13051:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13040:33:12"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 4032,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 4030,
                              "name": "offset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 3982,
                              "src": "13112:6:12",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 4031,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13121:1:12",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "13112:10:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 4033,
                            "name": "len",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4021,
                            "src": "13124:3:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 4028,
                            "name": "name",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 3974,
                            "src": "13097:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes memory"
                            }
                          },
                          "id": 4029,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "substring",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 5582,
                          "src": "13097:14:12",
                          "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": 4034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13097:31:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 4027,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13090:6:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_string_storage_ptr_$",
                        "typeString": "type(string storage pointer)"
                      },
                      "typeName": "string"
                    },
                    "id": 4035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13090:39:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 3980,
                  "id": 4036,
                  "nodeType": "Return",
                  "src": "13083:46:12"
                }
              ]
            },
            "documentation": null,
            "id": 4038,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLabel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3974,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 4038,
                  "src": "12665:17:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3973,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "12665:5:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3976,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 4038,
                  "src": "12684:8:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3975,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12684:4:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12664:29:12"
            },
            "returnParameters": {
              "id": 3980,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3979,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4038,
                  "src": "12716:13:12",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 3978,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "12716:6:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12715:15:12"
            },
            "scope": 4053,
            "src": "12647:489:12",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 4051,
              "nodeType": "Block",
              "src": "13214:46:12",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 4047,
                            "name": "addr",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4040,
                            "src": "13247:4:12",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 4046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "13239:7:12",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint160_$",
                            "typeString": "type(uint160)"
                          },
                          "typeName": "uint160"
                        },
                        "id": 4048,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "13239:13:12",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint160",
                          "typeString": "uint160"
                        }
                      ],
                      "id": 4045,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "13231:7:12",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": "address"
                    },
                    "id": 4049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13231:22:12",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 4044,
                  "id": 4050,
                  "nodeType": "Return",
                  "src": "13224:29:12"
                }
              ]
            },
            "documentation": null,
            "id": 4052,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toPayable",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 4041,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4040,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 4052,
                  "src": "13161:12:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4039,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13161:7:12",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13160:14:12"
            },
            "returnParameters": {
              "id": 4044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 4043,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 4052,
                  "src": "13197:15:12",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 4042,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13197:15:12",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13196:17:12"
            },
            "scope": 4053,
            "src": "13142:118:12",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 4054,
        "src": "1134:12128:12"
      }
    ],
    "src": "0:13263:12"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.16+commit.9c3226ce.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-06-17T16:01:00.537Z",
  "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": {}
  }
}