{
  "contractName": "HashRegistrar",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "sealedBids",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "registryStarted",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "launchLength",
      "outputs": [
        {
          "name": "",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rootNode",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_ens",
          "type": "address"
        },
        {
          "name": "_rootNode",
          "type": "bytes32"
        },
        {
          "name": "_startDate",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "AuctionStarted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "bidder",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "deposit",
          "type": "uint256"
        }
      ],
      "name": "NewBid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "status",
          "type": "uint8"
        }
      ],
      "name": "BidRevealed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "HashReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "hash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "HashInvalidated",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "startAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashes",
          "type": "bytes32[]"
        }
      ],
      "name": "startAuctions",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "newBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "hashes",
          "type": "bytes32[]"
        },
        {
          "name": "sealedBid",
          "type": "bytes32"
        }
      ],
      "name": "startAuctionsAndBid",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_value",
          "type": "uint256"
        },
        {
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "unsealBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "bidder",
          "type": "address"
        },
        {
          "name": "seal",
          "type": "bytes32"
        }
      ],
      "name": "cancelBid",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "finalizeAuction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "releaseDeed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "unhashedName",
          "type": "string"
        }
      ],
      "name": "invalidateName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "labels",
          "type": "bytes32[]"
        }
      ],
      "name": "eraseNode",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "transferRegistrars",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "name": "deed",
          "type": "address"
        },
        {
          "name": "registrationDate",
          "type": "uint256"
        }
      ],
      "name": "acceptRegistrarTransfer",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "entries",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        },
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        },
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "state",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "isAllowed",
      "outputs": [
        {
          "name": "allowed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_hash",
          "type": "bytes32"
        }
      ],
      "name": "getAllowedTime",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "name": "owner",
          "type": "address"
        },
        {
          "name": "value",
          "type": "uint256"
        },
        {
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "shaBid",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"releaseDeed\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"getAllowedTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"unhashedName\",\"type\":\"string\"}],\"name\":\"invalidateName\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"},{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"},{\"name\":\"salt\",\"type\":\"bytes32\"}],\"name\":\"shaBid\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"bidder\",\"type\":\"address\"},{\"name\":\"seal\",\"type\":\"bytes32\"}],\"name\":\"cancelBid\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"entries\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"unsealBid\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"transferRegistrars\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"sealedBids\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"state\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"},{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"},{\"name\":\"_timestamp\",\"type\":\"uint256\"}],\"name\":\"isAllowed\",\"outputs\":[{\"name\":\"allowed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"finalizeAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"registryStarted\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"launchLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sealedBid\",\"type\":\"bytes32\"}],\"name\":\"newBid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"labels\",\"type\":\"bytes32[]\"}],\"name\":\"eraseNode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hashes\",\"type\":\"bytes32[]\"}],\"name\":\"startAuctions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"hash\",\"type\":\"bytes32\"},{\"name\":\"deed\",\"type\":\"address\"},{\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"acceptRegistrarTransfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_hash\",\"type\":\"bytes32\"}],\"name\":\"startAuction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rootNode\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"hashes\",\"type\":\"bytes32[]\"},{\"name\":\"sealedBid\",\"type\":\"bytes32\"}],\"name\":\"startAuctionsAndBid\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_ens\",\"type\":\"address\"},{\"name\":\"_rootNode\",\"type\":\"bytes32\"},{\"name\":\"_startDate\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"AuctionStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"bidder\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"NewBid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"BidRevealed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"HashRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"HashReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":true,\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"registrationDate\",\"type\":\"uint256\"}],\"name\":\"HashInvalidated\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"The registrar handles the auction process for each subnode of the node it owns.\",\"methods\":{\"acceptRegistrarTransfer(bytes32,address,uint256)\":{\"details\":\"Accepts a transfer from a previous registrar; stubbed out here since there     is no previous registrar implementing this interface.\",\"params\":{\"deed\":\"The Deed object for the name being transferred in.\",\"hash\":\"The sha3 hash of the label to transfer.\",\"registrationDate\":\"The date at which the name was originally registered.\"}},\"cancelBid(address,bytes32)\":{\"details\":\"Cancel a bid\",\"params\":{\"seal\":\"The value returned by the shaBid function\"}},\"constructor\":{\"details\":\"Constructs a new Registrar, with the provided address as the owner of the root node.\",\"params\":{\"_ens\":\"The address of the ENS\",\"_rootNode\":\"The hash of the rootnode.\"}},\"eraseNode(bytes32[])\":{\"details\":\"Allows anyone to delete the owner and resolver records for a (subdomain of) a     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\",\"params\":{\"labels\":\"A series of label hashes identifying the name to zero out, rooted at the       registrar's root. Must contain at least one element. For instance, to zero        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing       [keccak256('foo'), keccak256('bar')].\"}},\"finalizeAuction(bytes32)\":{\"details\":\"Finalize an auction after the registration date has passed\",\"params\":{\"_hash\":\"The hash of the name the auction is for\"}},\"getAllowedTime(bytes32)\":{\"details\":\"Returns available date for hash     * The available time from the `registryStarted` for a hash is proportional to its numeric value.\",\"params\":{\"_hash\":\"The hash to start an auction on\"}},\"invalidateName(string)\":{\"details\":\"Submit a name 6 characters long or less. If it has been registered,     the submitter will earn 50% of the deed value.       * We are purposefully handicapping the simplified registrar as a way  to force it into being restructured in a few years.\",\"params\":{\"unhashedName\":\"An invalid name to search for in the registry.\"}},\"isAllowed(bytes32,uint256)\":{\"details\":\"Determines if a name is available for registration yet     * Each name will be assigned a random date in which its auction can be started, from 0 to 8 weeks\",\"params\":{\"_hash\":\"The hash to start an auction on\",\"_timestamp\":\"The timestamp to query about\"}},\"newBid(bytes32)\":{\"details\":\"Submit a new sealed bid on a desired hash in a blind auction     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash contains information about the bid, including the bidded hash, the bid amount, and a random salt. Bids are not tied to any one auction until they are revealed. The value of the bid itself can be masqueraded by sending more than the value of your actual bid. This is followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable. Since this is an auction, it is expected that most public hashes, like known domains and common dictionary words, will have multiple bidders pushing the price up.\",\"params\":{\"sealedBid\":\"A sealedBid, created by the shaBid function\"}},\"releaseDeed(bytes32)\":{\"details\":\"After some time, or if we're no longer the registrar, the owner can release     the name and get their ether back.\",\"params\":{\"_hash\":\"The node to release\"}},\"shaBid(bytes32,address,uint256,bytes32)\":{\"details\":\"Hash the values required for a secret bid\",\"params\":{\"hash\":\"The node corresponding to the desired namehash\",\"salt\":\"A random value to ensure secrecy of the bid\",\"value\":\"The bid amount\"},\"return\":\"The hash of the bid values\"},\"startAuction(bytes32)\":{\"details\":\"Start an auction for an available hash\",\"params\":{\"_hash\":\"The hash to start an auction on\"}},\"startAuctions(bytes32[])\":{\"details\":\"Start multiple auctions for better anonymity     * Anyone can start an auction by sending an array of hashes that they want to bid for. Arrays are sent so that someone can open up an auction for X dummy hashes when they are only really interested in bidding for one. This will increase the cost for an attacker to simply bid blindly on all new auctions. Dummy auctions that are open but not bid on are closed after a week.\",\"params\":{\"_hashes\":\"An array of hashes, at least one of which you presumably want to bid on\"}},\"startAuctionsAndBid(bytes32[],bytes32)\":{\"details\":\"Start a set of auctions and bid on one of them     * This method functions identically to calling `startAuctions` followed by `newBid`, but all in one transaction.\",\"params\":{\"hashes\":\"A list of hashes to start auctions on.\",\"sealedBid\":\"A sealed bid for one of the auctions.\"}},\"transfer(bytes32,address)\":{\"details\":\"The owner of a domain may transfer it to someone else at any time.\",\"params\":{\"_hash\":\"The node to transfer\",\"newOwner\":\"The address to transfer ownership to\"}},\"transferRegistrars(bytes32)\":{\"details\":\"Transfers the deed to the current registrar, if different from this one.     * Used during the upgrade process to a permanent registrar.\",\"params\":{\"_hash\":\"The name hash to transfer.\"}},\"unsealBid(bytes32,uint256,bytes32)\":{\"details\":\"Submit the properties of a bid to reveal them\",\"params\":{\"_hash\":\"The node in the sealedBid\",\"_salt\":\"The sale in the sealedBid\",\"_value\":\"The bid amount in the sealedBid\"}}},\"title\":\"Registrar\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@ensdomains/ens/contracts/HashRegistrar.sol\":\"HashRegistrar\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/ens/contracts/Deed.sol\":{\"keccak256\":\"0x7b4abd2f65e2e093743077b899d0fb4952627ad7ff6104b840f9869f5baa5e96\",\"urls\":[\"bzzr://5b8d57c40a5f830516a6fb6d5e03a9293b0129a3bf49b8d48f69c2ec91f90a45\"]},\"@ensdomains/ens/contracts/DeedImplementation.sol\":{\"keccak256\":\"0x91242ba8032d5e01a8a59da84afb4d0d5b1007d4257bde8e6caa20fbc700cdc7\",\"urls\":[\"bzzr://b3c449a5f75a92026469cdd531b431c0f0f1cc83f3fc7fc2ef65342176d436e4\"]},\"@ensdomains/ens/contracts/ENS.sol\":{\"keccak256\":\"0x10b88673d8c180cd62523be4fec7607c65594eb4f0c561fa0fbc0784422b4871\",\"urls\":[\"bzzr://8e5a54eed92d9bf8824175cf337e0df46e647deb0864eb5f091ea0b8132568f6\"]},\"@ensdomains/ens/contracts/HashRegistrar.sol\":{\"keccak256\":\"0xfa35370373bb3f4393d2b32908c526651fbc46cad2e313c9c8b2e6d051083b11\",\"urls\":[\"bzzr://702a2eda197bd2740cedfd4ed5c39e835561aa046b4c325860183dc5ec9fb89a\"]},\"@ensdomains/ens/contracts/Registrar.sol\":{\"keccak256\":\"0xaef3f85ba0cf0544485d506a3f93719a90f8f28ef6c59f7175955768bec719bb\",\"urls\":[\"bzzr://3a050fc49ad88188f879d99ec1476383531ab62536c69babc22e2896908734ae\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b50604051606080620041f9833981018060405260608110156200003357600080fd5b81019080805190602001909291908051906020019092919080519060200190929190505050826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160018190555060008111620000af5742620000b1565b805b60048190555050505061412f80620000ca6000396000f3fe6080604052600436106101405760003560e01c806379ce9fac116100b6578063de10f04b1161006f578063de10f04b14610734578063e27fe50f146107ba578063ea9e107a14610840578063ede8acdb146108a5578063faff50a8146108e0578063febefd611461090b57610140565b806379ce9fac146105b1578063935033371461060c578063983b94fb146106695780639c67f06f146106a4578063ae1a0b0c146106cf578063ce92dced1461070657610140565b8063267b692211610108578063267b6922146103335780633f15457f146103d857806347872b421461042f5780635ddae2831461047e5780635e431709146104b957806361d585da1461055457610140565b80630230a07c1461014557806313c89a8f1461018057806315f73331146101cf57806322ec1244146102555780632525f5c1146102d8575b600080fd5b34801561015157600080fd5b5061017e6004803603602081101561016857600080fd5b810190808035906020019092919050505061098e565b005b34801561018c57600080fd5b506101b9600480360360208110156101a357600080fd5b8101908080359060200190929190505050610cf3565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b50610253600480360360208110156101f257600080fd5b810190808035906020019064010000000081111561020f57600080fd5b82018360208201111561022157600080fd5b8035906020019184600183028401116401000000008311171561024357600080fd5b9091929391929390505050610d16565b005b34801561026157600080fd5b506102c26004803603608081101561027857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611199565b6040518082815260200191505060405180910390f35b3480156102e457600080fd5b50610331600480360360408110156102fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b005b34801561033f57600080fd5b5061036c6004803603602081101561035657600080fd5b8101908080359060200190929190505050611552565b6040518086600581111561037c57fe5b60ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156103e457600080fd5b506103ed6115c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043b57600080fd5b5061047c6004803603606081101561045257600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506115e6565b005b34801561048a57600080fd5b506104b7600480360360208110156104a157600080fd5b8101908080359060200190929190505050611e4f565b005b3480156104c557600080fd5b50610512600480360360408110156104dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061225d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056057600080fd5b5061058d6004803603602081101561057757600080fd5b810190808035906020019092919050505061229f565b6040518082600581111561059d57fe5b60ff16815260200191505060405180910390f35b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612328565b005b34801561061857600080fd5b5061064f6004803603604081101561062f57600080fd5b81019080803590602001909291908035906020019092919050505061255d565b604051808215151515815260200191505060405180910390f35b34801561067557600080fd5b506106a26004803603602081101561068c57600080fd5b8101908080359060200190929190505050612572565b005b3480156106b057600080fd5b506106b9612915565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b506106e461291b565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6107326004803603602081101561071c57600080fd5b8101908080359060200190929190505050612922565b005b34801561074057600080fd5b506107b86004803603602081101561075757600080fd5b810190808035906020019064010000000081111561077457600080fd5b82018360208201111561078657600080fd5b803590602001918460208302840111640100000000831117156107a857600080fd5b909192939192939050505061292e565b005b3480156107c657600080fd5b5061083e600480360360208110156107dd57600080fd5b81019080803590602001906401000000008111156107fa57600080fd5b82018360208201111561080c57600080fd5b8035906020019184602083028401116401000000008311171561082e57600080fd5b90919293919293905050506129db565b005b34801561084c57600080fd5b506108a36004803603606081101561086357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a29565b005b3480156108b157600080fd5b506108de600480360360208110156108c857600080fd5b8101908080359060200190929190505050612a2e565b005b3480156108ec57600080fd5b506108f5612a3a565b6040518082815260200191505060405180910390f35b61098c6004803603604081101561092157600080fd5b810190808035906020019064010000000081111561093e57600080fd5b82018360208201111561095057600080fd5b8035906020019184602083028401116401000000008311171561097257600080fd5b909192939192939080359060200190929190505050612a40565b005b806002600581111561099c57fe5b6109a58261229f565b60058111156109b057fe5b148015610a9e57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d6020811015610a5e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610aa757600080fd5b600060026000848152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506301e1338082600101540142101580610bda57503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614155b610be357600080fd5b600082600201819055506000826003018190555060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4484612a98565b8073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050837f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e1683600201546040518082815260200191505060405180910390a250505050565b60006080808360001c901c6249d40063ffffffff1602901c600454019050919050565b818160405160200180806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001206002806005811115610d7757fe5b610d808361229f565b6005811115610d8b57fe5b14610d9557600080fd5b6006610de485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e24565b1115610def57600080fd5b6000848460405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012090506000600260008381526020019081526020016000209050610e6682612a98565b600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d257610ed38160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c809726002836002015481610f2957fe5b0460006040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561102857600080fd5b505af115801561103c573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b505050505b85856040518083838082843780830192505050925050506040518091039020827f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad83600201548460010154604051808381526020018281526020019250505060405180910390a3600081600201819055506000816003018190555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b600084848484604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156113555750621275006206978063ffffffff168273ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b15801561131457600080fd5b505afa158015611328573d6000803e3d6000fd5b505050506040513d602081101561133e57600080fd5b810190808051906020019092919050505001014210155b61135e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b505050506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16827f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e760006005604051808381526020018260ff1681526020019250505060405180910390a3505050565b6000806000806000806002600088815260200190815260200160002090506115798761229f565b8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600201548460030154955095509550955095505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115f484338585611199565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a557600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026000878152602001908152602001600020905060006117d8868473ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b815260040160206040518083038186803b15801561179857600080fd5b505afa1580156117ac573d6000803e3d6000fd5b505050506040513d60208110156117c257600080fd5b8101908080519060200190929190505050612efe565b90508273ffffffffffffffffffffffffffffffffffffffff1663b0c809728260016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561183a57600080fd5b505af115801561184e573d6000803e3d6000fd5b50505050600061185d8861229f565b90506002600581111561186c57fe5b81600581111561187857fe5b141561194a578373ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156118d257600080fd5b505af11580156118e6573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846001604051808381526020018260ff1681526020019250505060405180910390a3611e45565b6004600581111561195757fe5b81600581111561196357fe5b1461196d57600080fd5b662386f26fc10000821080611a1057506202a30063ffffffff168360010154038473ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d60208110156119fd57600080fd5b8101908080519060200190929190505050115b15611ae2578373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a6a57600080fd5b505af1158015611a7e573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846000604051808381526020018260ff1681526020019250505060405180910390a3611e44565b8260030154821115611c9757600073ffffffffffffffffffffffffffffffffffffffff168360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde5760008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b50505050505b82600301548360020181905550818360030181905550838360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846002604051808381526020018260ff1681526020019250505060405180910390a3611e43565b8260020154821115611d79578183600201819055508373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846003604051808381526020018260ff1681526020019250505060405180910390a3611e42565b8373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611dce57600080fd5b505af1158015611de2573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846004604051808381526020018260ff1681526020019250505060405180910390a35b5b5b5b5050505050505050565b8060026005811115611e5d57fe5b611e668261229f565b6005811115611e7157fe5b148015611f5f57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f6857600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611fde57600080fd5b505afa158015611ff2573d6000803e3d6000fd5b505050506040513d602081101561200857600080fd5b810190808051906020019092919050505090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561205457600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663faab9d39836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561210e57600080fd5b505af1158015612122573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663ea9e107a858360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b5050505060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160010181905550600081600201819055506000816003018190555050505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806002600084815260200190815260200160002090506122c1834261255d565b6122cf576005915050612323565b8060010154421015612306576202a30063ffffffff168160010154034210156122fc576001915050612323565b6004915050612323565b60008160030154141561231d576000915050612323565b60029150505b919050565b816002600581111561233657fe5b61233f8261229f565b600581111561234a57fe5b14801561243857506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123ce57600080fd5b505afa1580156123e2573d6000803e3d6000fd5b505050506040513d60208110156123f857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61244157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b57600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561253557600080fd5b505af1158015612549573d6000803e3d6000fd5b505050506125578484612f1a565b50505050565b600061256883610cf3565b8211905092915050565b806002600581111561258057fe5b6125898261229f565b600581111561259457fe5b14801561268257506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561261857600080fd5b505afa15801561262c573d6000803e3d6000fd5b505050506040513d602081101561264257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61268b57600080fd5b60006002600084815260200190815260200160002090506126b78160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c80972826002015460016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b5050505061280d838260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127cd57600080fd5b505afa1580156127e1573d6000803e3d6000fd5b505050506040513d60208110156127f757600080fd5b8101908080519060200190929190505050612f1a565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561287757600080fd5b505afa15801561288b573d6000803e3d6000fd5b505050506040513d60208110156128a157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16837f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67083600201548460010154604051808381526020018281526020019250505060405180910390a3505050565b60045481565b6249d40081565b61292b816130ef565b50565b600082829050141561293f57600080fd5b6002600581111561294c57fe5b61296d83836001868690500381811061296157fe5b9050602002013561229f565b600581111561297857fe5b141561298357600080fd5b6129d760018383905003838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506001546132f4565b5050565b612a25828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b5050565b505050565b612a3781613612565b50565b60015481565b612a8a838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b612a93816130ef565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612b2357600080fd5b505afa158015612b37573d6000803e3d6000fd5b505050506040513d6020811015612b4d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612e21576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015483306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015612c2c57600080fd5b505af1158015612c40573d6000803e3d6000fd5b505050506040513d6020811015612c5657600080fd5b81019080805190602001909291905050505060006001548260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612d4657600080fd5b505af1158015612d5a573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612e0757600080fd5b505af1158015612e1b573d6000803e3d6000fd5b50505050505b50565b6000808060018401915081845101905060008090505b81831015612ed757600060ff845116905060808160ff161015612e6257600184019350612ec9565b60e08160ff161015612e7957600284019350612ec8565b60f08160ff161015612e9057600384019350612ec7565b60f88160ff161015612ea757600484019350612ec6565b60fc8160ff161015612ebe57600584019350612ec5565b6006840193505b5b5b5b5b508080600101915050612e3a565b809350505050919050565b600081831115612ef457829050612ef8565b8190505b92915050565b600081831015612f1057829050612f14565b8190505b92915050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612fa557600080fd5b505afa158015612fb9573d6000803e3d6000fd5b505050506040513d6020811015612fcf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156130eb576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015484846040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156130ae57600080fd5b505af11580156130c2573d6000803e3d6000fd5b505050506040513d60208110156130d857600080fd5b8101908080519060200190929190505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461319857600080fd5b662386f26fc100003410156131ac57600080fd5b600034336040516131bc906137f0565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040518091039082f08015801561320d573d6000803e3d6000fd5b509050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29346040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238284868151811061333e57fe5b6020026020010151306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b505050506040513d60208110156133e157600080fd5b8101908080519060200190929190505050508082848151811061340057fe5b60200260200101516040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050600083111561344f5761344e6001840383836132f4565b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156134f857600080fd5b505af115801561350c573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156135b957600080fd5b505af11580156135cd573d6000803e3d6000fd5b50505050505050565b60008090505b815181101561360e576136018282815181106135f457fe5b6020026020010151613612565b80806001019150506135dc565b5050565b600454421015801561362c5750630784ce00600454014211155b801561371157503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156136be57600080fd5b505afa1580156136d2573d6000803e3d6000fd5b505050506040513d60208110156136e857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b61371a57600080fd5b60006137258261229f565b90506001600581111561373457fe5b81600581111561374057fe5b141561374c57506137ed565b6000600581111561375957fe5b81600581111561376557fe5b1461376f57600080fd5b60006002600084815260200190815260200160002090506206978063ffffffff16420181600101819055506000816002018190555060008160030181905550827f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000382600101546040518082815260200191505060405180910390a250505b50565b610906806137fe8339019056fe60806040526040516020806109068339810180604052602081101561002357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426003819055506001600560006101000a81548160ff0219169083151502179055503460048190555050610818806100ee6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063674f220f11610066578063674f220f146101225780638da5cb5b1461016c578063b0c80972146101b6578063bbe42771146101f0578063faab9d391461021e57610093565b806305b34410146100985780630b5ab3d5146100b657806313af4035146100c05780633fa4f24514610104575b600080fd5b6100a0610262565b6040518082815260200191505060405180910390f35b6100be610267565b005b610102600480360360208110156100d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610271565b005b61010c61040d565b6040518082815260200191505060405180910390f35b61012a610417565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610174610441565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101ee600480360360408110156101cc57600080fd5b810190808035906020019092919080351515906020019092919050505061046a565b005b61021c6004803603602081101561020657600080fd5b8101908080359060200190929190505050610578565b005b6102606004803603602081101561023457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a5565b005b600090565b61026f610743565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561030557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600454905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c457600080fd5b600560009054906101000a900460ff166104dd57600080fd5b8160045410156104ec57600080fd5b816004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc833073ffffffffffffffffffffffffffffffffffffffff1631039081150290604051600060405180830381858888f193505050508061056b575080155b61057457600080fd5b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d257600080fd5b600560009054906101000a900460ff166105eb57600080fd5b6000600560006101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff166108fc6103e83073ffffffffffffffffffffffffffffffffffffffff1631846103e803028161064a57fe5b049081150290604051600060405180830381858888f1935050505061066e57600080fd5b7fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1360405160405180910390a16106a2610743565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ff57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff161561075d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050156107ea5761dead73ffffffffffffffffffffffffffffffffffffffff16ff5b56fea165627a7a723058200e3e08ed214d0d22e4bb4d0538fef2ee5016202994c4e7539fbc193848e4de550029a165627a7a7230582058ad53664edd1565f89745a68c46c1ec987ea55f65e769af3405c9c813a48cfd0029",
  "deployedBytecode": "0x6080604052600436106101405760003560e01c806379ce9fac116100b6578063de10f04b1161006f578063de10f04b14610734578063e27fe50f146107ba578063ea9e107a14610840578063ede8acdb146108a5578063faff50a8146108e0578063febefd611461090b57610140565b806379ce9fac146105b1578063935033371461060c578063983b94fb146106695780639c67f06f146106a4578063ae1a0b0c146106cf578063ce92dced1461070657610140565b8063267b692211610108578063267b6922146103335780633f15457f146103d857806347872b421461042f5780635ddae2831461047e5780635e431709146104b957806361d585da1461055457610140565b80630230a07c1461014557806313c89a8f1461018057806315f73331146101cf57806322ec1244146102555780632525f5c1146102d8575b600080fd5b34801561015157600080fd5b5061017e6004803603602081101561016857600080fd5b810190808035906020019092919050505061098e565b005b34801561018c57600080fd5b506101b9600480360360208110156101a357600080fd5b8101908080359060200190929190505050610cf3565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b50610253600480360360208110156101f257600080fd5b810190808035906020019064010000000081111561020f57600080fd5b82018360208201111561022157600080fd5b8035906020019184600183028401116401000000008311171561024357600080fd5b9091929391929390505050610d16565b005b34801561026157600080fd5b506102c26004803603608081101561027857600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611199565b6040518082815260200191505060405180910390f35b3480156102e457600080fd5b50610331600480360360408110156102fb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611213565b005b34801561033f57600080fd5b5061036c6004803603602081101561035657600080fd5b8101908080359060200190929190505050611552565b6040518086600581111561037c57fe5b60ff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b3480156103e457600080fd5b506103ed6115c1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561043b57600080fd5b5061047c6004803603606081101561045257600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506115e6565b005b34801561048a57600080fd5b506104b7600480360360208110156104a157600080fd5b8101908080359060200190929190505050611e4f565b005b3480156104c557600080fd5b50610512600480360360408110156104dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061225d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056057600080fd5b5061058d6004803603602081101561057757600080fd5b810190808035906020019092919050505061229f565b6040518082600581111561059d57fe5b60ff16815260200191505060405180910390f35b3480156105bd57600080fd5b5061060a600480360360408110156105d457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612328565b005b34801561061857600080fd5b5061064f6004803603604081101561062f57600080fd5b81019080803590602001909291908035906020019092919050505061255d565b604051808215151515815260200191505060405180910390f35b34801561067557600080fd5b506106a26004803603602081101561068c57600080fd5b8101908080359060200190929190505050612572565b005b3480156106b057600080fd5b506106b9612915565b6040518082815260200191505060405180910390f35b3480156106db57600080fd5b506106e461291b565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b6107326004803603602081101561071c57600080fd5b8101908080359060200190929190505050612922565b005b34801561074057600080fd5b506107b86004803603602081101561075757600080fd5b810190808035906020019064010000000081111561077457600080fd5b82018360208201111561078657600080fd5b803590602001918460208302840111640100000000831117156107a857600080fd5b909192939192939050505061292e565b005b3480156107c657600080fd5b5061083e600480360360208110156107dd57600080fd5b81019080803590602001906401000000008111156107fa57600080fd5b82018360208201111561080c57600080fd5b8035906020019184602083028401116401000000008311171561082e57600080fd5b90919293919293905050506129db565b005b34801561084c57600080fd5b506108a36004803603606081101561086357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a29565b005b3480156108b157600080fd5b506108de600480360360208110156108c857600080fd5b8101908080359060200190929190505050612a2e565b005b3480156108ec57600080fd5b506108f5612a3a565b6040518082815260200191505060405180910390f35b61098c6004803603604081101561092157600080fd5b810190808035906020019064010000000081111561093e57600080fd5b82018360208201111561095057600080fd5b8035906020019184602083028401116401000000008311171561097257600080fd5b909192939192939080359060200190929190505050612a40565b005b806002600581111561099c57fe5b6109a58261229f565b60058111156109b057fe5b148015610a9e57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a3457600080fd5b505afa158015610a48573d6000803e3d6000fd5b505050506040513d6020811015610a5e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610aa757600080fd5b600060026000848152602001908152602001600020905060008160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506301e1338082600101540142101580610bda57503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b8657600080fd5b505afa158015610b9a573d6000803e3d6000fd5b505050506040513d6020811015610bb057600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614155b610be357600080fd5b600082600201819055506000826003018190555060008260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c4484612a98565b8073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c9957600080fd5b505af1158015610cad573d6000803e3d6000fd5b50505050837f292b79b9246fa2c8e77d3fe195b251f9cb839d7d038e667c069ee7708c631e1683600201546040518082815260200191505060405180910390a250505050565b60006080808360001c901c6249d40063ffffffff1602901c600454019050919050565b818160405160200180806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509350505050604051602081830303815290604052805190602001206002806005811115610d7757fe5b610d808361229f565b6005811115610d8b57fe5b14610d9557600080fd5b6006610de485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612e24565b1115610def57600080fd5b6000848460405160200180806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505093505050506040516020818303038152906040528051906020012090506000600260008381526020019081526020016000209050610e6682612a98565b600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110d257610ed38160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c809726002836002015481610f2957fe5b0460006040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561102857600080fd5b505af115801561103c573d6000803e3d6000fd5b505050508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e86040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110b957600080fd5b505af11580156110cd573d6000803e3d6000fd5b505050505b85856040518083838082843780830192505050925050506040518091039020827f1f9c649fe47e58bb60f4e52f0d90e4c47a526c9f90c5113df842c025970b66ad83600201548460010154604051808381526020018281526020019250505060405180910390a3600081600201819055506000816003018190555060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b600084848484604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050949350505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156113555750621275006206978063ffffffff168273ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b15801561131457600080fd5b505afa158015611328573d6000803e3d6000fd5b505050506040513d602081101561133e57600080fd5b810190808051906020019092919050505001014210155b61135e57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166313af4035336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156113dd57600080fd5b505af11580156113f1573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561144957600080fd5b505af115801561145d573d6000803e3d6000fd5b505050506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16827f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e760006005604051808381526020018260ff1681526020019250505060405180910390a3505050565b6000806000806000806002600088815260200190815260200160002090506115798761229f565b8160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826001015483600201548460030154955095509550955095505091939590929450565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006115f484338585611199565b90506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156116a557600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060026000878152602001908152602001600020905060006117d8868473ffffffffffffffffffffffffffffffffffffffff16633fa4f2456040518163ffffffff1660e01b815260040160206040518083038186803b15801561179857600080fd5b505afa1580156117ac573d6000803e3d6000fd5b505050506040513d60208110156117c257600080fd5b8101908080519060200190929190505050612efe565b90508273ffffffffffffffffffffffffffffffffffffffff1663b0c809728260016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561183a57600080fd5b505af115801561184e573d6000803e3d6000fd5b50505050600061185d8861229f565b90506002600581111561186c57fe5b81600581111561187857fe5b141561194a578373ffffffffffffffffffffffffffffffffffffffff1663bbe4277160056040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156118d257600080fd5b505af11580156118e6573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846001604051808381526020018260ff1681526020019250505060405180910390a3611e45565b6004600581111561195757fe5b81600581111561196357fe5b1461196d57600080fd5b662386f26fc10000821080611a1057506202a30063ffffffff168360010154038473ffffffffffffffffffffffffffffffffffffffff166305b344106040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d60208110156119fd57600080fd5b8101908080519060200190929190505050115b15611ae2578373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611a6a57600080fd5b505af1158015611a7e573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846000604051808381526020018260ff1681526020019250505060405180910390a3611e44565b8260030154821115611c9757600073ffffffffffffffffffffffffffffffffffffffff168360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bde5760008360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611bc457600080fd5b505af1158015611bd8573d6000803e3d6000fd5b50505050505b82600301548360020181905550818360030181905550838360000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846002604051808381526020018260ff1681526020019250505060405180910390a3611e43565b8260020154821115611d79578183600201819055508373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d0157600080fd5b505af1158015611d15573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846003604051808381526020018260ff1681526020019250505060405180910390a3611e42565b8373ffffffffffffffffffffffffffffffffffffffff1663bbe427716103e36040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611dce57600080fd5b505af1158015611de2573d6000803e3d6000fd5b505050503373ffffffffffffffffffffffffffffffffffffffff16887f7b6c4b278d165a6b33958f8ea5dfb00c8c9d4d0acf1985bef5d10786898bc3e7846004604051808381526020018260ff1681526020019250505060405180910390a35b5b5b5b5050505050505050565b8060026005811115611e5d57fe5b611e668261229f565b6005811115611e7157fe5b148015611f5f57506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d6020811015611f1f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b611f6857600080fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611fde57600080fd5b505afa158015611ff2573d6000803e3d6000fd5b505050506040513d602081101561200857600080fd5b810190808051906020019092919050505090503073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561205457600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663faab9d39836040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561210e57600080fd5b505af1158015612122573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff1663ea9e107a858360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684600101546040518463ffffffff1660e01b8152600401808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050600060405180830381600087803b1580156121dd57600080fd5b505af11580156121f1573d6000803e3d6000fd5b5050505060008160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008160010181905550600081600201819055506000816003018190555050505050565b60036020528160005260406000206020528060005260406000206000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806002600084815260200190815260200160002090506122c1834261255d565b6122cf576005915050612323565b8060010154421015612306576202a30063ffffffff168160010154034210156122fc576001915050612323565b6004915050612323565b60008160030154141561231d576000915050612323565b60029150505b919050565b816002600581111561233657fe5b61233f8261229f565b600581111561234a57fe5b14801561243857506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156123ce57600080fd5b505afa1580156123e2573d6000803e3d6000fd5b505050506040513d60208110156123f857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61244157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b57600080fd5b60006002600085815260200190815260200160002090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166313af4035846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561253557600080fd5b505af1158015612549573d6000803e3d6000fd5b505050506125578484612f1a565b50505050565b600061256883610cf3565b8211905092915050565b806002600581111561258057fe5b6125898261229f565b600581111561259457fe5b14801561268257506002600082815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561261857600080fd5b505afa15801561262c573d6000803e3d6000fd5b505050506040513d602081101561264257600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61268b57600080fd5b60006002600084815260200190815260200160002090506126b78160020154662386f26fc10000612ee2565b81600201819055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b0c80972826002015460016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b15801561274757600080fd5b505af115801561275b573d6000803e3d6000fd5b5050505061280d838260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127cd57600080fd5b505afa1580156127e1573d6000803e3d6000fd5b505050506040513d60208110156127f757600080fd5b8101908080519060200190929190505050612f1a565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561287757600080fd5b505afa15801561288b573d6000803e3d6000fd5b505050506040513d60208110156128a157600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16837f0f0c27adfd84b60b6f456b0e87cdccb1e5fb9603991588d87fa99f5b6b61e67083600201548460010154604051808381526020018281526020019250505060405180910390a3505050565b60045481565b6249d40081565b61292b816130ef565b50565b600082829050141561293f57600080fd5b6002600581111561294c57fe5b61296d83836001868690500381811061296157fe5b9050602002013561229f565b600581111561297857fe5b141561298357600080fd5b6129d760018383905003838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506001546132f4565b5050565b612a25828280806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b5050565b505050565b612a3781613612565b50565b60015481565b612a8a838380806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050506135d6565b612a93816130ef565b505050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612b2357600080fd5b505afa158015612b37573d6000803e3d6000fd5b505050506040513d6020811015612b4d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415612e21576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015483306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b158015612c2c57600080fd5b505af1158015612c40573d6000803e3d6000fd5b505050506040513d6020811015612c5657600080fd5b81019080805190602001909291905050505060006001548260405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612d4657600080fd5b505af1158015612d5a573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b158015612e0757600080fd5b505af1158015612e1b573d6000803e3d6000fd5b50505050505b50565b6000808060018401915081845101905060008090505b81831015612ed757600060ff845116905060808160ff161015612e6257600184019350612ec9565b60e08160ff161015612e7957600284019350612ec8565b60f08160ff161015612e9057600384019350612ec7565b60f88160ff161015612ea757600484019350612ec6565b60fc8160ff161015612ebe57600584019350612ec5565b6006840193505b5b5b5b5b508080600101915050612e3a565b809350505050919050565b600081831115612ef457829050612ef8565b8190505b92915050565b600081831015612f1057829050612f14565b8190505b92915050565b3073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612fa557600080fd5b505afa158015612fb9573d6000803e3d6000fd5b505050506040513d6020811015612fcf57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614156130eb576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360015484846040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156130ae57600080fd5b505af11580156130c2573d6000803e3d6000fd5b505050506040513d60208110156130d857600080fd5b8101908080519060200190929190505050505b5050565b600073ffffffffffffffffffffffffffffffffffffffff16600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461319857600080fd5b662386f26fc100003410156131ac57600080fd5b600034336040516131bc906137f0565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019150506040518091039082f08015801561320d573d6000803e3d6000fd5b509050905080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16827fb556ff269c1b6714f432c36431e2041d28436a73b6c3f19c021827bbdc6bfc29346040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab59238284868151811061333e57fe5b6020026020010151306040518463ffffffff1660e01b8152600401808481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050602060405180830381600087803b1580156133b757600080fd5b505af11580156133cb573d6000803e3d6000fd5b505050506040513d60208110156133e157600080fd5b8101908080519060200190929190505050508082848151811061340057fe5b60200260200101516040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209050600083111561344f5761344e6001840383836132f4565b5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156134f857600080fd5b505af115801561350c573d6000803e3d6000fd5b505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38260006040518363ffffffff1660e01b8152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156135b957600080fd5b505af11580156135cd573d6000803e3d6000fd5b50505050505050565b60008090505b815181101561360e576136018282815181106135f457fe5b6020026020010151613612565b80806001019150506135dc565b5050565b600454421015801561362c5750630784ce00600454014211155b801561371157503073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be36001546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156136be57600080fd5b505afa1580156136d2573d6000803e3d6000fd5b505050506040513d60208110156136e857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16145b61371a57600080fd5b60006137258261229f565b90506001600581111561373457fe5b81600581111561374057fe5b141561374c57506137ed565b6000600581111561375957fe5b81600581111561376557fe5b1461376f57600080fd5b60006002600084815260200190815260200160002090506206978063ffffffff16420181600101819055506000816002018190555060008160030181905550827f87e97e825a1d1fa0c54e1d36c7506c1dea8b1efd451fe68b000cf96f7cf4000382600101546040518082815260200191505060405180910390a250505b50565b610906806137fe8339019056fe60806040526040516020806109068339810180604052602081101561002357600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426003819055506001600560006101000a81548160ff0219169083151502179055503460048190555050610818806100ee6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063674f220f11610066578063674f220f146101225780638da5cb5b1461016c578063b0c80972146101b6578063bbe42771146101f0578063faab9d391461021e57610093565b806305b34410146100985780630b5ab3d5146100b657806313af4035146100c05780633fa4f24514610104575b600080fd5b6100a0610262565b6040518082815260200191505060405180910390f35b6100be610267565b005b610102600480360360208110156100d657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610271565b005b61010c61040d565b6040518082815260200191505060405180910390f35b61012a610417565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610174610441565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101ee600480360360408110156101cc57600080fd5b810190808035906020019092919080351515906020019092919050505061046a565b005b61021c6004803603602081101561020657600080fd5b8101908080359060200190929190505050610578565b005b6102606004803603602081101561023457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106a5565b005b600090565b61026f610743565b565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102cb57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561030557600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3681604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6000600454905090565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104c457600080fd5b600560009054906101000a900460ff166104dd57600080fd5b8160045410156104ec57600080fd5b816004819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc833073ffffffffffffffffffffffffffffffffffffffff1631039081150290604051600060405180830381858888f193505050508061056b575080155b61057457600080fd5b5050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d257600080fd5b600560009054906101000a900460ff166105eb57600080fd5b6000600560006101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff166108fc6103e83073ffffffffffffffffffffffffffffffffffffffff1631846103e803028161064a57fe5b049081150290604051600060405180830381858888f1935050505061066e57600080fd5b7fbb2ce2f51803bba16bc85282b47deeea9a5c6223eabea1077be696b3f265cf1360405160405180910390a16106a2610743565b50565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ff57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560009054906101000a900460ff161561075d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050156107ea5761dead73ffffffffffffffffffffffffffffffffffffffff16ff5b56fea165627a7a723058200e3e08ed214d0d22e4bb4d0538fef2ee5016202994c4e7539fbc193848e4de550029a165627a7a7230582058ad53664edd1565f89745a68c46c1ec987ea55f65e769af3405c9c813a48cfd0029",
  "sourceMap": "586:18452:29:-;;;1779:183;8:9:-1;5:2;;;30:1;27;20:12;5:2;1779:183:29;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1779:183:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1860:4;1854:3;;:10;;;;;;;;;;;;;;;;;;1885:9;1874:8;:20;;;;1935:1;1922:10;:14;:33;;1952:3;1922:33;;;1939:10;1922:33;1904:15;:51;;;;1779:183;;;586:18452;;;;;;",
  "deployedSourceMap": "586:18452:29:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8735:444;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8735:444:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8735:444:29;;;;;;;;;;;;;;;;;:::i;:::-;;14358:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14358:206:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14358:206:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9564:815;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9564:815:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9564:815:29;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9564:815:29;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9564:815:29;;;;;;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;9564:815:29;;;;;;;;;;;;:::i;:::-;;14853:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14853:178:29;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;14853:178:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6637:844;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6637:844:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6637:844:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12611:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12611:229:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12611:229:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;628:14:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4547:1975;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4547:1975:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4547:1975:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11472:565;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11472:565:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11472:565:29;;;;;;;;;;;;;;;;;:::i;:::-;;719:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;719:64:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;719:64:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13069:585;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13069:585:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13069:585:29;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8272:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8272:259:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8272:259:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13973:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13973:144:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13973:144:29;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7641:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7641:422:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7641:422:29;;;;;;;;;;;;;;;;;:::i;:::-;;977:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;977:27:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;884:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;884:45:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3727:87;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3727:87:29;;;;;;;;;;;;;;;;;:::i;:::-;;11008:231;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11008:231:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11008:231:29;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11008:231:29;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11008:231:29;;;;;;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;11008:231:29;;;;;;;;;;;;:::i;:::-;;2771:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2771:100:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2771:100:29;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2771:100:29;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2771:100:29;;;;;;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;2771:100:29;;;;;;;;;;;;:::i;:::-;;12433:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12433:172:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12433:172:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2094:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2094:83:29;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2094:83:29;;;;;;;;;;;;;;;;;:::i;:::-;;648:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;648:23:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4156:159;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4156:159:29;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4156:159:29;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4156:159:29;;;;;;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;4156:159:29;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8735:444;8790:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:29;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;8807:15;8825:8;:15;8834:5;8825:15;;;;;;;;;;;8807:33;;8850:17;8870:1;:6;;;;;;;;;;;;8850:26;;8923:8;8902:1;:18;;;:29;8895:3;:36;;:76;;;;8966:4;8935:36;;:3;;;;;;;;;;;:9;;;8945:8;;8935:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8935:19:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8935:19:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8935:19:29;;;;;;;;;;;;;;;;:36;;;;8895:76;8887:85;;;;;;8993:1;8983;:7;;:11;;;;9019:1;9004;:12;;:16;;;;9044:1;9030;:6;;;:16;;;;;;;;;;;;;;;;;;9057:26;9077:5;9057:19;:26::i;:::-;9093:12;:22;;;9116:4;9093:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9093:28:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9093:28:29;;;;9149:5;9136:28;9156:1;:7;;;9136:28;;;;;;;;;;;;;;;;;;1377:1;;8735:444;;:::o;14358:206::-;14418:4;14501:3;14492;14482:5;14477:11;;:18;;922:7;14461:35;;;14460:44;;14441:15;;:64;14434:71;;14358:206;;;:::o;9564:815::-;9672:12;;9661:24;;;;;;;;;;;;;;;;;;;;;;;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;;9661:24:29;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9661:24:29;;;9651:35;;;;;;9688:10;1211:6;1195:22;;;;;;;;:12;1201:5;1195;:12::i;:::-;:22;;;;;;;;;1187:31;;;;;;9746:1;9722:20;9729:12;;9722:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;9722:20:29;;;;;;:6;:20::i;:::-;:25;;9714:34;;;;;;9758:12;9794;;9783:24;;;;;;;;;;;;;;;;;;;;;;;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;;9783:24:29;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9783:24:29;;;9773:35;;;;;;9758:50;;9819:15;9837:8;:14;9846:4;9837:14;;;;;;;;;;;9819:32;;9862:25;9882:4;9862:19;:25::i;:::-;9929:3;9902:31;;9910:1;:6;;;;;;;;;;;;9902:31;;;9898:321;;10060:22;10064:1;:7;;;961:10;10060:3;:22::i;:::-;10050:1;:7;;:32;;;;10096:1;:6;;;;;;;;;;;;:17;;;10122:1;10114;:7;;;:9;;;;;;10125:5;10096:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10096:35:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10096:35:29;;;;10145:1;:6;;;;;;;;;;;;:15;;;10161:10;10145:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10145:27:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10145:27:29;;;;10186:1;:6;;;;;;;;;;;;:16;;;10203:4;10186:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10186:22:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10186:22:29;;;;9898:321;10256:12;;10234:64;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;10234:64:29;;;;;;;;;;;;;10250:4;10234:64;10270:1;:7;;;10279:1;:18;;;10234:64;;;;;;;;;;;;;;;;;;;;;;;;10319:1;10309;:7;;:11;;;;10345:1;10330;:12;;:16;;;;10370:1;10356;:6;;;:16;;;;;;;;;;;;;;;;;;1228:1;;9564:815;;;;:::o;14853:178::-;14945:7;14998:4;15004:5;15011;15018:4;14981:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14981:42:29;;;14971:53;;;;;;14964:60;;14853:178;;;;;;:::o;6637:844::-;6705:8;6716:10;:18;6727:6;6716:18;;;;;;;;;;;;;;;:24;6735:4;6716:24;;;;;;;;;;;;;;;;;;;;;6705:35;;7192:3;7168:28;;7176:3;7168:28;;;;:88;;;;;7249:7;827:6;7207:39;;:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7207:18:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7207:18:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7207:18:29;;;;;;;;;;;;;;;;:39;:49;7200:3;:56;;7168:88;7160:97;;;;;;7334:3;:12;;;7347:10;7334:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7334:24:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7334:24:29;;;;7368:3;:13;;;7382:1;7368:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7368:16:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7368:16:29;;;;7426:1;7394:10;:18;7405:6;7394:18;;;;;;;;;;;;;;;:24;7413:4;7394:24;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;7461:6;7443:31;;7455:4;7443:31;7469:1;7472;7443:31;;;;;;;;;;;;;;;;;;;;;;;;;;6637:844;;;:::o;12611:229::-;12666:4;12672:7;12681:4;12687;12693;12709:15;12727:8;:15;12736:5;12727:15;;;;;;;;;;;12709:33;;12760:12;12766:5;12760;:12::i;:::-;12782:1;:6;;;;;;;;;;;;12791:1;:18;;;12811:1;:7;;;12820:1;:12;;;12752:81;;;;;;;;;;;12611:229;;;;;;;:::o;628:14::-;;;;;;;;;;;;;:::o;4547:1975::-;4628:12;4643:40;4650:5;4657:10;4669:6;4677:5;4643:6;:40::i;:::-;4628:55;;4693:8;4704:10;:22;4715:10;4704:22;;;;;;;;;;;;;;;:28;4727:4;4704:28;;;;;;;;;;;;;;;;;;;;;4693:39;;4774:3;4750:28;;4758:3;4750:28;;;;4742:37;;;;;;4834:3;4790:10;:22;4801:10;4790:22;;;;;;;;;;;;;;;:28;4813:4;4790:28;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;4849:15;4867:8;:15;4876:5;4867:15;;;;;;;;;;;4849:33;;4892:10;4905:24;4909:6;4917:3;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4917:11:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4917:11:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4917:11:29;;;;;;;;;;;;;;;;4905:3;:24::i;:::-;4892:37;;4939:3;:14;;;4954:5;4961:4;4939:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4939:27:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4939:27:29;;;;4977:17;4997:12;5003:5;4997;:12::i;:::-;4977:32;;5039:10;5023:26;;;;;;;;:12;:26;;;;;;;;;5019:1497;;;5130:3;:13;;;5144:1;5130:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5130:16:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5130:16:29;;;;5184:10;5165:40;;5177:5;5165:40;5196:5;5203:1;5165:40;;;;;;;;;;;;;;;;;;;;;;;;;;5019:1497;;;5242:11;5226:27;;;;;;;;:12;:27;;;;;;;;;5222:1294;;5298:8;;;5222:1294;961:10;5327:5;:16;:74;;;;870:8;5368:33;;:1;:18;;;:33;5347:3;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5347:18:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5347:18:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5347:18:29;;;;;;;;;;;;;;;;:54;5327:74;5323:1193;;;5470:3;:13;;;5484:3;5470:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5470:18:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5470:18:29;;;;5526:10;5507:40;;5519:5;5507:40;5538:5;5545:1;5507:40;;;;;;;;;;;;;;;;;;;;;;;;;;5323:1193;;;5576:1;:12;;;5568:5;:20;5564:952;;;5711:3;5684:31;;5692:1;:6;;;;;;;;;;;;5684:31;;;5680:145;;5735:19;5757:1;:6;;;;;;;;;;;;5735:28;;5781:14;:24;;;5806:3;5781:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5781:29:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5781:29:29;;;;5680:145;;5972:1;:12;;;5962:1;:7;;:22;;;;6055:5;6040:1;:12;;:20;;;;6083:3;6074:1;:6;;;:12;;;;;;;;;;;;;;;;;;6124:10;6105:40;;6117:5;6105:40;6136:5;6143:1;6105:40;;;;;;;;;;;;;;;;;;;;;;;;;;5564:952;;;6174:1;:7;;;6166:5;:15;6162:354;;;6259:5;6249:1;:7;;:15;;;;6278:3;:13;;;6292:3;6278:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6278:18:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6278:18:29;;;;6334:10;6315:40;;6327:5;6315:40;6346:5;6353:1;6315:40;;;;;;;;;;;;;;;;;;;;;;;;;;6162:354;;;6428:3;:13;;;6442:3;6428:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6428:18:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6428:18:29;;;;6484:10;6465:40;;6477:5;6465:40;6496:5;6503:1;6465:40;;;;;;;;;;;;;;;;;;;;;;;;;;6162:354;5564:952;5323:1193;5019:1497;4547:1975;;;;;;;;:::o;11472:565::-;11534:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:29;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;11551:17;11571:3;;;;;;;;;;;:9;;;11581:8;;11571:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11571:19:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11571:19:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11571:19:29;;;;;;;;;;;;;;;;11551:39;;11629:4;11608:26;;:9;:26;;;;11600:35;;;;;;11674:15;11692:8;:15;11701:5;11692:15;;;;;;;;;;;11674:33;;11717:1;:6;;;;;;;;;;;;:19;;;11737:9;11717:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11717:30:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11717:30:29;;;;11825:9;11815:44;;;11860:5;11867:1;:6;;;;;;;;;;;;11875:1;:18;;;11815:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11815:79:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11815:79:29;;;;11949:1;11935;:6;;;:16;;;;;;;;;;;;;;;;;;11982:1;11961;:18;;:22;;;;12003:1;11993;:7;;:11;;;;12029:1;12014;:12;;:16;;;;1377:1;;11472:565;;:::o;719:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13069:585::-;13120:4;13136:19;13158:8;:15;13167:5;13158:15;;;;;;;;;;;13136:37;;13189:21;13199:5;13206:3;13189:9;:21::i;:::-;13184:464;;13233:20;13226:27;;;;;13184:464;13280:5;:22;;;13274:3;:28;13270:378;;;870:8;13328:37;;:5;:22;;;:37;13322:3;:43;13318:158;;;13392:12;13385:19;;;;;13318:158;13450:11;13443:18;;;;;13270:378;13530:1;13510:5;:16;;;:21;13506:132;;;13558:9;13551:16;;;;;13506:132;13613:10;13606:17;;;13069:585;;;;:::o;8272:259::-;8350:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:29;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;8395:3;8375:24;;:8;:24;;;;8367:33;;;;;;8411:15;8429:8;:15;8438:5;8429:15;;;;;;;;;;;8411:33;;8454:1;:6;;;;;;;;;;;;:15;;;8470:8;8454:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8454:25:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8454:25:29;;;;8489:35;8508:5;8515:8;8489:18;:35::i;:::-;1377:1;8272:259;;;:::o;13973:144::-;14045:12;14089:21;14104:5;14089:14;:21::i;:::-;14076:10;:34;14069:41;;13973:144;;;;:::o;7641:422::-;7700:5;1310:10;1294:26;;;;;;;;:12;1300:5;1294;:12::i;:::-;:26;;;;;;;;;:72;;;;;1338:8;:15;1347:5;1338:15;;;;;;;;;;;:20;;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1338:28:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1338:28:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1338:28:29;;;;;;;;;;;;;;;;1324:42;;:10;:42;;;1294:72;1286:81;;;;;;7717:15;7735:8;:15;7744:5;7735:15;;;;;;;;;;;7717:33;;7859:22;7863:1;:7;;;961:10;7859:3;:22::i;:::-;7849:1;:7;;:32;;;;7891:1;:6;;;;;;;;;;;;:17;;;7909:1;:7;;;7918:4;7891:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7891:32:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7891:32:29;;;;7934:41;7953:5;7960:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7960:14:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7960:14:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7960:14:29;;;;;;;;;;;;;;;;7934:18;:41::i;:::-;8012:1;:6;;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8012:14:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8012:14:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8012:14:29;;;;;;;;;;;;;;;;7990:66;;8005:5;7990:66;8028:1;:7;;;8037:1;:18;;;7990:66;;;;;;;;;;;;;;;;;;;;;;;;1377:1;7641:422;;:::o;977:27::-;;;;:::o;884:45::-;922:7;884:45;:::o;3727:87::-;3789:18;3797:9;3789:7;:18::i;:::-;3727:87;:::o;11008:231::-;11098:1;11081:6;;:13;;:18;;11073:27;;;;;;11154:10;11118:46;;;;;;;;:32;11124:6;;11147:1;11131:6;;:13;;:17;11124:25;;;;;;;;;;;;;11118:5;:32::i;:::-;:46;;;;;;;;;;11110:55;;;;;;11176:56;11212:1;11196:6;;:13;;:17;11215:6;;11176:56;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;11176:56:29;;;;;;11223:8;;11176:19;:56::i;:::-;11008:231;;:::o;2771:100::-;2841:23;2856:7;;2841:23;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;2841:23:29;;;;;;:14;:23::i;:::-;2771:100;;:::o;12433:172::-;;;;:::o;2094:83::-;2150:20;2164:5;2150:13;:20::i;:::-;2094:83;:::o;648:23::-;;;;:::o;4156:159::-;4258:22;4273:6;;4258:22;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;4258:22:29;;;;;;:14;:22::i;:::-;4290:18;4298:9;4290:7;:18::i;:::-;4156:159;;;:::o;15037:355::-;15135:4;15104:36;;:3;;;;;;;;;;;:9;;;15114:8;;15104:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15104:19:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15104:19:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15104:19:29;;;;;;;;;;;;;;;;:36;;;15100:286;;;15156:3;;;;;;;;;;;:19;;;15176:8;;15186:5;15201:4;15156:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15156:51:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15156:51:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15156:51:29;;;;;;;;;;;;;;;;;15221:12;15263:8;;15273:5;15246:33;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15246:33:29;;;15236:44;;;;;;15221:59;;15294:3;;;;;;;;;;;:15;;;15310:4;15324:3;15294:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15294:35:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15294:35:29;;;;15343:3;;;;;;;;;;;:12;;;15356:4;15370:3;15343:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15343:32:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15343:32:29;;;;15100:286;;15037:355;:::o;18194:841::-;18250:4;18384:8;18402;18457:1;18454;18450:9;18443:16;;18493:3;18489:1;18483:8;18479:18;18472:25;;18516:8;18527:1;18516:12;;18538:471;18554:3;18548;:9;18538:471;;;18580:7;18633:4;18627:3;18621:10;18617:21;18612:26;;18661:4;18657:1;:8;;;18653:346;;;18692:1;18685:8;;;;18653:346;;;18722:4;18718:1;:8;;;18714:285;;;18753:1;18746:8;;;;18714:285;;;18783:4;18779:1;:8;;;18775:224;;;18814:1;18807:8;;;;18775:224;;;18844:4;18840:1;:8;;;18836:163;;;18875:1;18868:8;;;;18836:163;;;18905:4;18901:1;:8;;;18897:102;;;18936:1;18929:8;;;;18897:102;;;18983:1;18976:8;;;;18897:102;18836:163;18775:224;18714:285;18653:346;18538:471;18559:5;;;;;;;18538:471;;;19025:3;19018:10;;;;;18194:841;;;:::o;17526:141::-;17578:4;17602:1;17598;:5;17594:66;;;17624:1;17617:8;;;;17594:66;17659:1;17652:8;;17526:141;;;;;:::o;17877:::-;17929:4;17953:1;17949;:5;17945:66;;;17975:1;17968:8;;;;17945:66;18010:1;18003:8;;17877:141;;;;;:::o;17127:189::-;17243:4;17212:36;;:3;;;;;;;;;;;:9;;;17222:8;;17212:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17212:19:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17212:19:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17212:19:29;;;;;;;;;;;;;;;;:36;;;17208:101;;;17262:3;;;;;;;;;;;:19;;;17282:8;;17292:5;17299:9;17262:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17262:47:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17262:47:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17262:47:29;;;;;;;;;;;;;;;;;17208:101;17127:189;;:::o;16006:402::-;16123:3;16069:58;;16077:10;:22;16088:10;16077:22;;;;;;;;;;;;;;;:33;16100:9;16077:33;;;;;;;;;;;;;;;;;;;;;16069:58;;;16061:67;;;;;;961:10;16146:9;:21;;16138:30;;;;;;16233:8;16275:9;16286:10;16244:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16244:53:29;;;16233:64;;16343:3;16307:10;:22;16318:10;16307:22;;;;;;;;;;;;;;;:33;16330:9;16307:33;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;16379:10;16361:40;;16368:9;16361:40;16391:9;16361:40;;;;;;;;;;;;;;;;;;16006:402;;:::o;16414:528::-;16549:3;;;;;;;;;;;:19;;;16569:4;16575:6;16582:3;16575:11;;;;;;;;;;;;;;16596:4;16549:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16549:53:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16549:53:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16549:53:29;;;;;;;;;;;;;;;;;16646:4;16652:6;16659:3;16652:11;;;;;;;;;;;;;;16629:35;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16629:35:29;;;16619:46;;;;;;16612:53;;16730:1;16724:3;:7;16720:80;;;16747:42;16773:1;16767:3;:7;16776:6;16784:4;16747:19;:42::i;:::-;16720:80;16858:3;;;;;;;;;;;:15;;;16874:4;16888:3;16858:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16858:35:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16858:35:29;;;;16903:3;;;;;;;;;;;:12;;;16916:4;16930:3;16903:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16903:32:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16903:32:29;;;;16414:528;;;:::o;15832:168::-;15906:6;15915:1;15906:10;;15901:93;15922:7;:14;15918:1;:18;15901:93;;;15958:25;15972:7;15980:1;15972:10;;;;;;;;;;;;;;15958:13;:25::i;:::-;15938:4;;;;;;;15901:93;;;;15832:168;:::o;15398:428::-;1440:15;;1433:3;:22;;:69;;;;;1484:18;1466:15;;:36;1459:3;:43;;1433:69;:109;;;;;1537:4;1506:36;;:3;;;;;;;;;;;:9;;;1516:8;;1506:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1506:19:29;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1506:19:29;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1506:19:29;;;;;;;;;;;;;;;;:36;;;1433:109;1425:118;;;;;;15470:9;15482:12;15488:5;15482;:12::i;:::-;15470:24;;15516:12;15508:20;;;;;;;;:4;:20;;;;;;;;;15504:33;;;15530:7;;;15504:33;15562:9;15554:17;;;;;;;;:4;:17;;;;;;;;;15546:26;;;;;;15583:24;15610:8;:15;15619:5;15610:15;;;;;;;;;;;15583:42;;827:6;15665:24;;:3;:24;15635:10;:27;;:54;;;;15718:1;15699:10;:16;;:20;;;;15753:1;15729:10;:21;;:25;;;;15784:5;15769:50;15791:10;:27;;;15769:50;;;;;;;;;;;;;;;;;;1553:1;;;15398:428;:::o;586:18452::-;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.0;\n\n\n/*\n\nTemporary Hash Registrar\n========================\n\nThis is a simplified version of a hash registrar. It is purporsefully limited:\nnames cannot be six letters or shorter, new auctions will stop after 4 years.\n\nThe plan is to test the basic features and then move to a new contract in at most\n2 years, when some sort of renewal mechanism will be enabled.\n*/\n\n\nimport \"./ENS.sol\";\nimport \"./DeedImplementation.sol\";\nimport \"./Registrar.sol\";\n\n/**\n * @title Registrar\n * @dev The registrar handles the auction process for each subnode of the node it owns.\n */\ncontract HashRegistrar is Registrar {\n    ENS public ens;\n    bytes32 public rootNode;\n\n    mapping (bytes32 => Entry) _entries;\n    mapping (address => mapping (bytes32 => Deed)) public sealedBids;\n\n    uint32 constant totalAuctionLength = 5 days;\n    uint32 constant revealPeriod = 48 hours;\n    uint32 public constant launchLength = 8 weeks;\n\n    uint constant minPrice = 0.01 ether;\n    uint public registryStarted;\n\n    struct Entry {\n        Deed deed;\n        uint registrationDate;\n        uint value;\n        uint highestBid;\n    }\n\n    modifier inState(bytes32 _hash, Mode _state) {\n        require(state(_hash) == _state);\n        _;\n    }\n\n    modifier onlyOwner(bytes32 _hash) {\n        require(state(_hash) == Mode.Owned && msg.sender == _entries[_hash].deed.owner());\n        _;\n    }\n\n    modifier registryOpen() {\n        require(now >= registryStarted && now <= registryStarted + (365 * 4) * 1 days && ens.owner(rootNode) == address(this));\n        _;\n    }\n\n    /**\n     * @dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     *\n     * @param _ens The address of the ENS\n     * @param _rootNode The hash of the rootnode.\n     */\n    constructor(ENS _ens, bytes32 _rootNode, uint _startDate) public {\n        ens = _ens;\n        rootNode = _rootNode;\n        registryStarted = _startDate > 0 ? _startDate : now;\n    }\n\n    /**\n     * @dev Start an auction for an available hash\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function startAuction(bytes32 _hash) external {\n        _startAuction(_hash);\n    }\n\n    /**\n     * @dev Start multiple auctions for better anonymity\n     *\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\n     * Arrays are sent so that someone can open up an auction for X dummy hashes when they\n     * are only really interested in bidding for one. This will increase the cost for an\n     * attacker to simply bid blindly on all new auctions. Dummy auctions that are\n     * open but not bid on are closed after a week.\n     *\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on\n     */\n    function startAuctions(bytes32[] calldata _hashes) external {\n        _startAuctions(_hashes);\n    }\n\n    /**\n     * @dev Submit a new sealed bid on a desired hash in a blind auction\n     *\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\n     * contains information about the bid, including the bidded hash, the bid amount, and a random\n     * salt. Bids are not tied to any one auction until they are revealed. The value of the bid\n     * itself can be masqueraded by sending more than the value of your actual bid. This is\n     * followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\n     * Since this is an auction, it is expected that most public hashes, like known domains and common dictionary\n     * words, will have multiple bidders pushing the price up.\n     *\n     * @param sealedBid A sealedBid, created by the shaBid function\n     */\n    function newBid(bytes32 sealedBid) external payable {\n        _newBid(sealedBid);\n    }\n\n    /**\n     * @dev Start a set of auctions and bid on one of them\n     *\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\n     * but all in one transaction.\n     *\n     * @param hashes A list of hashes to start auctions on.\n     * @param sealedBid A sealed bid for one of the auctions.\n     */\n    function startAuctionsAndBid(bytes32[] calldata hashes, bytes32 sealedBid) external payable {\n        _startAuctions(hashes);\n        _newBid(sealedBid);\n    }\n\n    /**\n     * @dev Submit the properties of a bid to reveal them\n     *\n     * @param _hash The node in the sealedBid\n     * @param _value The bid amount in the sealedBid\n     * @param _salt The sale in the sealedBid\n     */\n    function unsealBid(bytes32 _hash, uint _value, bytes32 _salt) external {\n        bytes32 seal = shaBid(_hash, msg.sender, _value, _salt);\n        Deed bid = sealedBids[msg.sender][seal];\n        require(address(bid) != address(0x0));\n\n        sealedBids[msg.sender][seal] = Deed(address(0x0));\n        Entry storage h = _entries[_hash];\n        uint value = min(_value, bid.value());\n        bid.setBalance(value, true);\n\n        Mode auctionState = state(_hash);\n        if (auctionState == Mode.Owned) {\n            // Too late! Bidder loses their bid. Gets 0.5% back.\n            bid.closeDeed(5);\n            emit BidRevealed(_hash, msg.sender, value, 1);\n        } else if (auctionState != Mode.Reveal) {\n            // Invalid phase\n            revert();\n        } else if (value < minPrice || bid.creationDate() > h.registrationDate - revealPeriod) {\n            // Bid too low or too late, refund 99.5%\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 0);\n        } else if (value > h.highestBid) {\n            // New winner\n            // Cancel the other bid, refund 99.5%\n            if (address(h.deed) != address(0x0)) {\n                Deed previousWinner = h.deed;\n                previousWinner.closeDeed(995);\n            }\n\n            // Set new winner\n            // Per the rules of a vickery auction, the value becomes the previous highestBid\n            h.value = h.highestBid;  // will be zero if there's only 1 bidder\n            h.highestBid = value;\n            h.deed = bid;\n            emit BidRevealed(_hash, msg.sender, value, 2);\n        } else if (value > h.value) {\n            // Not winner, but affects second place\n            h.value = value;\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 3);\n        } else {\n            // Bid doesn't affect auction\n            bid.closeDeed(995);\n            emit BidRevealed(_hash, msg.sender, value, 4);\n        }\n    }\n\n    /**\n     * @dev Cancel a bid\n     *\n     * @param seal The value returned by the shaBid function\n     */\n    function cancelBid(address bidder, bytes32 seal) external {\n        Deed bid = sealedBids[bidder][seal];\n        \n        // If a sole bidder does not `unsealBid` in time, they have a few more days\n        // where they can call `startAuction` (again) and then `unsealBid` during\n        // the revealPeriod to get back their bid value.\n        // For simplicity, they should call `startAuction` within\n        // 9 days (2 weeks - totalAuctionLength), otherwise their bid will be\n        // cancellable by anyone.\n        require(address(bid) != address(0x0) && now >= bid.creationDate() + totalAuctionLength + 2 weeks);\n\n        // Send the canceller 0.5% of the bid, and burn the rest.\n        bid.setOwner(msg.sender);\n        bid.closeDeed(5);\n        sealedBids[bidder][seal] = Deed(0);\n        emit BidRevealed(seal, bidder, 0, 5);\n    }\n\n    /**\n     * @dev Finalize an auction after the registration date has passed\n     *\n     * @param _hash The hash of the name the auction is for\n     */\n    function finalizeAuction(bytes32 _hash) external onlyOwner(_hash) {\n        Entry storage h = _entries[_hash];\n        \n        // Handles the case when there's only a single bidder (h.value is zero)\n        h.value = max(h.value, minPrice);\n        h.deed.setBalance(h.value, true);\n\n        trySetSubnodeOwner(_hash, h.deed.owner());\n        emit HashRegistered(_hash, h.deed.owner(), h.value, h.registrationDate);\n    }\n\n    /**\n     * @dev The owner of a domain may transfer it to someone else at any time.\n     *\n     * @param _hash The node to transfer\n     * @param newOwner The address to transfer ownership to\n     */\n    function transfer(bytes32 _hash, address payable newOwner) external onlyOwner(_hash) {\n        require(newOwner != address(0x0));\n\n        Entry storage h = _entries[_hash];\n        h.deed.setOwner(newOwner);\n        trySetSubnodeOwner(_hash, newOwner);\n    }\n\n    /**\n     * @dev After some time, or if we're no longer the registrar, the owner can release\n     *      the name and get their ether back.\n     *\n     * @param _hash The node to release\n     */\n    function releaseDeed(bytes32 _hash) external onlyOwner(_hash) {\n        Entry storage h = _entries[_hash];\n        Deed deedContract = h.deed;\n\n        require(now >= h.registrationDate + 365 days || ens.owner(rootNode) != address(this));\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n\n        _tryEraseSingleNode(_hash);\n        deedContract.closeDeed(1000);\n        emit HashReleased(_hash, h.value);        \n    }\n\n    /**\n     * @dev Submit a name 6 characters long or less. If it has been registered,\n     *      the submitter will earn 50% of the deed value. \n     * \n     * We are purposefully handicapping the simplified registrar as a way \n     * to force it into being restructured in a few years.\n     *\n     * @param unhashedName An invalid name to search for in the registry.\n     */\n    function invalidateName(string calldata unhashedName)\n        external\n        inState(keccak256(abi.encode(unhashedName)), Mode.Owned)\n    {\n        require(strlen(unhashedName) <= 6);\n        bytes32 hash = keccak256(abi.encode(unhashedName));\n\n        Entry storage h = _entries[hash];\n\n        _tryEraseSingleNode(hash);\n\n        if (address(h.deed) != address(0x0)) {\n            // Reward the discoverer with 50% of the deed\n            // The previous owner gets 50%\n            h.value = max(h.value, minPrice);\n            h.deed.setBalance(h.value/2, false);\n            h.deed.setOwner(msg.sender);\n            h.deed.closeDeed(1000);\n        }\n\n        emit HashInvalidated(hash, unhashedName, h.value, h.registrationDate);\n\n        h.value = 0;\n        h.highestBid = 0;\n        h.deed = Deed(0);\n    }\n\n    /**\n     * @dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     *      name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     *      the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     *\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n     *        registrar's root. Must contain at least one element. For instance, to zero \n     *        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n     *        [keccak256('foo'), keccak256('bar')].\n     */\n    function eraseNode(bytes32[] calldata labels) external {\n        require(labels.length != 0);\n        require(state(labels[labels.length - 1]) != Mode.Owned);\n\n        _eraseNodeHierarchy(labels.length - 1, labels, rootNode);\n    }\n\n    /**\n     * @dev Transfers the deed to the current registrar, if different from this one.\n     *\n     * Used during the upgrade process to a permanent registrar.\n     *\n     * @param _hash The name hash to transfer.\n     */\n    function transferRegistrars(bytes32 _hash) external onlyOwner(_hash) {\n        address registrar = ens.owner(rootNode);\n        require(registrar != address(this));\n\n        // Migrate the deed\n        Entry storage h = _entries[_hash];\n        h.deed.setRegistrar(registrar);\n\n        // Call the new registrar to accept the transfer\n        Registrar(registrar).acceptRegistrarTransfer(_hash, h.deed, h.registrationDate);\n\n        // Zero out the Entry\n        h.deed = Deed(0);\n        h.registrationDate = 0;\n        h.value = 0;\n        h.highestBid = 0;\n    }\n\n    /**\n     * @dev Accepts a transfer from a previous registrar; stubbed out here since there\n     *      is no previous registrar implementing this interface.\n     *\n     * @param hash The sha3 hash of the label to transfer.\n     * @param deed The Deed object for the name being transferred in.\n     * @param registrationDate The date at which the name was originally registered.\n     */\n    function acceptRegistrarTransfer(bytes32 hash, Deed deed, uint registrationDate) external {\n        hash; deed; registrationDate; // Don't warn about unused variables\n    }\n\n    function entries(bytes32 _hash) external view returns (Mode, address, uint, uint, uint) {\n        Entry storage h = _entries[_hash];\n        return (state(_hash), address(h.deed), h.registrationDate, h.value, h.highestBid);\n    }\n\n    // State transitions for names:\n    //   Open -> Auction (startAuction)\n    //   Auction -> Reveal\n    //   Reveal -> Owned\n    //   Reveal -> Open (if nobody bid)\n    //   Owned -> Open (releaseDeed or invalidateName)\n    function state(bytes32 _hash) public view returns (Mode) {\n        Entry storage entry = _entries[_hash];\n\n        if (!isAllowed(_hash, now)) {\n            return Mode.NotYetAvailable;\n        } else if (now < entry.registrationDate) {\n            if (now < entry.registrationDate - revealPeriod) {\n                return Mode.Auction;\n            } else {\n                return Mode.Reveal;\n            }\n        } else {\n            if (entry.highestBid == 0) {\n                return Mode.Open;\n            } else {\n                return Mode.Owned;\n            }\n        }\n    }\n\n    /**\n     * @dev Determines if a name is available for registration yet\n     *\n     * Each name will be assigned a random date in which its auction\n     * can be started, from 0 to 8 weeks\n     *\n     * @param _hash The hash to start an auction on\n     * @param _timestamp The timestamp to query about\n     */\n    function isAllowed(bytes32 _hash, uint _timestamp) public view returns (bool allowed) {\n        return _timestamp > getAllowedTime(_hash);\n    }\n\n    /**\n     * @dev Returns available date for hash\n     *\n     * The available time from the `registryStarted` for a hash is proportional\n     * to its numeric value.\n     *\n     * @param _hash The hash to start an auction on\n     */\n    function getAllowedTime(bytes32 _hash) public view returns (uint) {\n        return registryStarted + ((launchLength * (uint(_hash) >> 128)) >> 128);\n        // Right shift operator: a >> b == a / 2**b\n    }\n\n    /**\n     * @dev Hash the values required for a secret bid\n     *\n     * @param hash The node corresponding to the desired namehash\n     * @param value The bid amount\n     * @param salt A random value to ensure secrecy of the bid\n     * @return The hash of the bid values\n     */\n    function shaBid(bytes32 hash, address owner, uint value, bytes32 salt) public pure returns (bytes32) {\n        return keccak256(abi.encodePacked(hash, owner, value, salt));\n    }\n\n    function _tryEraseSingleNode(bytes32 label) internal {\n        if (ens.owner(rootNode) == address(this)) {\n            ens.setSubnodeOwner(rootNode, label, address(this));\n            bytes32 node = keccak256(abi.encodePacked(rootNode, label));\n            ens.setResolver(node, address(0x0));\n            ens.setOwner(node, address(0x0));\n        }\n    }\n\n    function _startAuction(bytes32 _hash) internal registryOpen() {\n        Mode mode = state(_hash);\n        if (mode == Mode.Auction) return;\n        require(mode == Mode.Open);\n\n        Entry storage newAuction = _entries[_hash];\n        newAuction.registrationDate = now + totalAuctionLength;\n        newAuction.value = 0;\n        newAuction.highestBid = 0;\n        emit AuctionStarted(_hash, newAuction.registrationDate);\n    }\n\n    function _startAuctions(bytes32[] memory _hashes) internal {\n        for (uint i = 0; i < _hashes.length; i ++) {\n            _startAuction(_hashes[i]);\n        }\n    }\n\n    function _newBid(bytes32 sealedBid) internal {\n        require(address(sealedBids[msg.sender][sealedBid]) == address(0x0));\n        require(msg.value >= minPrice);\n\n        // Creates a new hash contract with the owner\n        Deed bid = (new DeedImplementation).value(msg.value)(msg.sender);\n        sealedBids[msg.sender][sealedBid] = bid;\n        emit NewBid(sealedBid, msg.sender, msg.value);\n    }\n\n    function _eraseNodeHierarchy(uint idx, bytes32[] memory labels, bytes32 node) internal {\n        // Take ownership of the node\n        ens.setSubnodeOwner(node, labels[idx], address(this));\n        node = keccak256(abi.encodePacked(node, labels[idx]));\n\n        // Recurse if there are more labels\n        if (idx > 0) {\n            _eraseNodeHierarchy(idx - 1, labels, node);\n        }\n\n        // Erase the resolver and owner records\n        ens.setResolver(node, address(0x0));\n        ens.setOwner(node, address(0x0));\n    }\n\n    /**\n     * @dev Assign the owner in ENS, if we're still the registrar\n     *\n     * @param _hash hash to change owner\n     * @param _newOwner new owner to transfer to\n     */\n    function trySetSubnodeOwner(bytes32 _hash, address _newOwner) internal {\n        if (ens.owner(rootNode) == address(this))\n            ens.setSubnodeOwner(rootNode, _hash, _newOwner);\n    }\n\n    /**\n     * @dev Returns the maximum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The maximum of two unsigned integers\n     */\n    function max(uint a, uint b) internal pure returns (uint) {\n        if (a > b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the minimum of two unsigned integers\n     *\n     * @param a A number to compare\n     * @param b A number to compare\n     * @return The minimum of two unsigned integers\n     */\n    function min(uint a, uint b) internal pure returns (uint) {\n        if (a < b)\n            return a;\n        else\n            return b;\n    }\n\n    /**\n     * @dev Returns the length of a given string\n     *\n     * @param s The string to measure the length of\n     * @return The length of the input string\n     */\n    function strlen(string memory s) internal pure returns (uint) {\n        s; // Don't warn about unused variables\n        // Starting here means the LSB will be the byte we care about\n        uint ptr;\n        uint end;\n        assembly {\n            ptr := add(s, 1)\n            end := add(mload(s), ptr)\n        }\n        uint len = 0;\n        for (len; ptr < end; len++) {\n            uint8 b;\n            assembly { b := and(mload(ptr), 0xFF) }\n            if (b < 0x80) {\n                ptr += 1;\n            } else if (b < 0xE0) {\n                ptr += 2;\n            } else if (b < 0xF0) {\n                ptr += 3;\n            } else if (b < 0xF8) {\n                ptr += 4;\n            } else if (b < 0xFC) {\n                ptr += 5;\n            } else {\n                ptr += 6;\n            }\n        }\n        return len;\n    }\n\n}\n",
  "sourcePath": "@ensdomains/ens/contracts/HashRegistrar.sol",
  "ast": {
    "absolutePath": "@ensdomains/ens/contracts/HashRegistrar.sol",
    "exportedSymbols": {
      "HashRegistrar": [
        8755
      ]
    },
    "id": 8756,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7282,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:29"
      },
      {
        "absolutePath": "@ensdomains/ens/contracts/ENS.sol",
        "file": "./ENS.sol",
        "id": 7283,
        "nodeType": "ImportDirective",
        "scope": 8756,
        "sourceUnit": 6762,
        "src": "388:19:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/ens/contracts/DeedImplementation.sol",
        "file": "./DeedImplementation.sol",
        "id": 7284,
        "nodeType": "ImportDirective",
        "scope": 8756,
        "sourceUnit": 6625,
        "src": "408:34:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/ens/contracts/Registrar.sol",
        "file": "./Registrar.sol",
        "id": 7285,
        "nodeType": "ImportDirective",
        "scope": 8756,
        "sourceUnit": 8921,
        "src": "443:25:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 7286,
              "name": "Registrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8920,
              "src": "612:9:29",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Registrar_$8920",
                "typeString": "contract Registrar"
              }
            },
            "id": 7287,
            "nodeType": "InheritanceSpecifier",
            "src": "612:9:29"
          }
        ],
        "contractDependencies": [
          6624,
          8920
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 8755,
        "linearizedBaseContracts": [
          8755,
          8920
        ],
        "name": "HashRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 7289,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "628:14:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$6761",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 7288,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6761,
              "src": "628:3:29",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$6761",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7291,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "648:23:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 7290,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "648:7:29",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7295,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "678:35:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
              "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
            },
            "typeName": {
              "id": 7294,
              "keyType": {
                "id": 7292,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "687:7:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "678:26:29",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 7293,
                "name": "Entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 7324,
                "src": "698:5:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                  "typeString": "struct HashRegistrar.Entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7301,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "719:64:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 7300,
              "keyType": {
                "id": 7296,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "719:46:29",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 7299,
                "keyType": {
                  "id": 7297,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "748:7:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "739:25:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 7298,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 6372,
                  "src": "759:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$6372",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 7304,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "790:43:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 7302,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "790:6:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 7303,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "827:6:29",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 7307,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "839:39:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 7305,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "839:6:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 7306,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "870:8:29",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 7310,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "884:45:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 7308,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "884:6:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 7309,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "922:7:29",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 7313,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "936:35:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 7311,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "936:4:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 7312,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "961:10:29",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7315,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "977:27:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 7314,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "977:4:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Entry",
            "id": 7324,
            "members": [
              {
                "constant": false,
                "id": 7317,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1034:9:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$6372",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7316,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 6372,
                  "src": "1034:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$6372",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7319,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1053:21:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7318,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1053:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7321,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1084:10:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7320,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1084:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7323,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1104:15:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7322,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1104:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Entry",
            "nodeType": "StructDefinition",
            "scope": 8755,
            "src": "1011:115:29",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7339,
              "nodeType": "Block",
              "src": "1177:59:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 7335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7332,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7326,
                              "src": "1201:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 7331,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "1195:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 7333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1195:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 7334,
                          "name": "_state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7328,
                          "src": "1211:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "1195:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7330,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "1187:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1187:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7337,
                  "nodeType": "ExpressionStatement",
                  "src": "1187:31:29"
                },
                {
                  "id": 7338,
                  "nodeType": "PlaceholderStatement",
                  "src": "1228:1:29"
                }
              ]
            },
            "documentation": null,
            "id": 7340,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 7329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7326,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7340,
                  "src": "1149:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7325,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1149:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7328,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 7340,
                  "src": "1164:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$8765",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7327,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8765,
                    "src": "1164:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1148:28:29"
            },
            "src": "1132:104:29",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7364,
              "nodeType": "Block",
              "src": "1276:109:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          },
                          "id": 7350,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7346,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7342,
                                "src": "1300:5:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 7345,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8280,
                              "src": "1294:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                                "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                              }
                            },
                            "id": 7347,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1294:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$8765",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7348,
                              "name": "Mode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8765,
                              "src": "1310:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                "typeString": "type(enum Registrar.Mode)"
                              }
                            },
                            "id": 7349,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Owned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1310:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$8765",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "src": "1294:26:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7351,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12908,
                              "src": "1324:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7352,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1324:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 7353,
                                    "name": "_entries",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7295,
                                    "src": "1338:8:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                                      "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                                    }
                                  },
                                  "id": 7355,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 7354,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7342,
                                    "src": "1347:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1338:15:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage",
                                    "typeString": "struct HashRegistrar.Entry storage ref"
                                  }
                                },
                                "id": 7356,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "deed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7317,
                                "src": "1338:20:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 7357,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6356,
                              "src": "1338:26:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 7358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1338:28:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1324:42:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1294:72:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7344,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "1286:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1286:81:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7362,
                  "nodeType": "ExpressionStatement",
                  "src": "1286:81:29"
                },
                {
                  "id": 7363,
                  "nodeType": "PlaceholderStatement",
                  "src": "1377:1:29"
                }
              ]
            },
            "documentation": null,
            "id": 7365,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 7343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7342,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7365,
                  "src": "1261:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7341,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1260:15:29"
            },
            "src": "1242:143:29",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7394,
              "nodeType": "Block",
              "src": "1415:146:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 7381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7368,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12910,
                              "src": "1433:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 7369,
                              "name": "registryStarted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7315,
                              "src": "1440:15:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1433:22:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7380,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7371,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12910,
                              "src": "1459:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7379,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 7372,
                                "name": "registryStarted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7315,
                                "src": "1466:15:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                },
                                "id": 7378,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      },
                                      "id": 7375,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "333635",
                                        "id": 7373,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1485:3:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_365_by_1",
                                          "typeString": "int_const 365"
                                        },
                                        "value": "365"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 7374,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1491:1:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "1485:7:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      }
                                    }
                                  ],
                                  "id": 7376,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1484:9:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1460_by_1",
                                    "typeString": "int_const 1460"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 7377,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1496:6:29",
                                  "subdenomination": "days",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_86400_by_1",
                                    "typeString": "int_const 86400"
                                  },
                                  "value": "1"
                                },
                                "src": "1484:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                }
                              },
                              "src": "1466:36:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1459:43:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1433:69:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7389,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7384,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7291,
                                "src": "1516:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7382,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7289,
                                "src": "1506:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$6761",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 7383,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6730,
                              "src": "1506:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 7385,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1506:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7387,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12964,
                                "src": "1537:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 7386,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1529:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7388,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1529:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1506:36:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1433:109:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7367,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "1425:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1425:118:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7392,
                  "nodeType": "ExpressionStatement",
                  "src": "1425:118:29"
                },
                {
                  "id": 7393,
                  "nodeType": "PlaceholderStatement",
                  "src": "1553:1:29"
                }
              ]
            },
            "documentation": null,
            "id": 7395,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 7366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1412:2:29"
            },
            "src": "1391:170:29",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7421,
              "nodeType": "Block",
              "src": "1844:118:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7406,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7404,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7289,
                      "src": "1854:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$6761",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 7405,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7397,
                      "src": "1860:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$6761",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1854:10:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$6761",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 7407,
                  "nodeType": "ExpressionStatement",
                  "src": "1854:10:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7408,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7291,
                      "src": "1874:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 7409,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7399,
                      "src": "1885:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1874:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7411,
                  "nodeType": "ExpressionStatement",
                  "src": "1874:20:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7412,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7315,
                      "src": "1904:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7413,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7401,
                          "src": "1922:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7414,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1935:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1922:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 7417,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12910,
                        "src": "1952:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 7418,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "1922:33:29",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 7416,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7401,
                        "src": "1939:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1904:51:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7420,
                  "nodeType": "ExpressionStatement",
                  "src": "1904:51:29"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 7422,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7397,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 7422,
                  "src": "1791:8:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$6761",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7396,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6761,
                    "src": "1791:3:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$6761",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7399,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 7422,
                  "src": "1801:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1801:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7401,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 7422,
                  "src": "1820:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7400,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1820:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1790:46:29"
            },
            "returnParameters": {
              "id": 7403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1844:0:29"
            },
            "scope": 8755,
            "src": "1779:183:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7431,
              "nodeType": "Block",
              "src": "2140:37:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7428,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7424,
                        "src": "2164:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7427,
                      "name": "_startAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8456,
                      "src": "2150:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2150:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7430,
                  "nodeType": "ExpressionStatement",
                  "src": "2150:20:29"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 7432,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7424,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7432,
                  "src": "2116:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7423,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2116:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2115:15:29"
            },
            "returnParameters": {
              "id": 7426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2140:0:29"
            },
            "scope": 8755,
            "src": "2094:83:29",
            "stateMutability": "nonpayable",
            "superFunction": 8827,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7442,
              "nodeType": "Block",
              "src": "2831:40:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7439,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7435,
                        "src": "2856:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 7438,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8482,
                      "src": "2841:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 7440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2841:23:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7441,
                  "nodeType": "ExpressionStatement",
                  "src": "2841:23:29"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 7443,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7435,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 7443,
                  "src": "2794:26:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7433,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2794:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 7434,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2794:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2793:28:29"
            },
            "returnParameters": {
              "id": 7437,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2831:0:29"
            },
            "scope": 8755,
            "src": "2771:100:29",
            "stateMutability": "nonpayable",
            "superFunction": 8833,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7452,
              "nodeType": "Block",
              "src": "3779:35:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7449,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7445,
                        "src": "3797:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7448,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8540,
                      "src": "3789:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3789:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7451,
                  "nodeType": "ExpressionStatement",
                  "src": "3789:18:29"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 7453,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7445,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 7453,
                  "src": "3743:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7444,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3742:19:29"
            },
            "returnParameters": {
              "id": 7447,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3779:0:29"
            },
            "scope": 8755,
            "src": "3727:87:29",
            "stateMutability": "payable",
            "superFunction": 8838,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7469,
              "nodeType": "Block",
              "src": "4248:67:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7462,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7456,
                        "src": "4273:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 7461,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8482,
                      "src": "4258:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 7463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4258:22:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7464,
                  "nodeType": "ExpressionStatement",
                  "src": "4258:22:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7466,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7458,
                        "src": "4298:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7465,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8540,
                      "src": "4290:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4290:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7468,
                  "nodeType": "ExpressionStatement",
                  "src": "4290:18:29"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 7470,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7456,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 7470,
                  "src": "4185:25:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7454,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4185:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 7455,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4185:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7458,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 7470,
                  "src": "4212:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7457,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4212:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4184:46:29"
            },
            "returnParameters": {
              "id": 7460,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4248:0:29"
            },
            "scope": 8755,
            "src": "4156:159:29",
            "stateMutability": "payable",
            "superFunction": 8846,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7701,
              "nodeType": "Block",
              "src": "4618:1904:29",
              "statements": [
                {
                  "assignments": [
                    7480
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7480,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4628:12:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7479,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4628:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7488,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7482,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7472,
                        "src": "4650:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7483,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "4657:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4657:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7485,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7474,
                        "src": "4669:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7486,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7476,
                        "src": "4677:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7481,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8343,
                      "src": "4643:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 7487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4643:40:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4628:55:29"
                },
                {
                  "assignments": [
                    7490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7490,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4693:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7489,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "4693:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7497,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7491,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7301,
                        "src": "4704:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 7494,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7492,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "4715:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4715:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4704:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 7496,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7495,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7480,
                      "src": "4727:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4704:28:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4693:39:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 7505,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7500,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7490,
                              "src": "4758:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 7499,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4750:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7501,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4750:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 7503,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4774:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7502,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4766:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4766:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "4750:28:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7498,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "4742:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4742:37:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7507,
                  "nodeType": "ExpressionStatement",
                  "src": "4742:37:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 7508,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7301,
                          "src": "4790:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 7512,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7509,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "4801:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 7510,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4801:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4790:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 7513,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7480,
                        "src": "4813:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4790:28:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 7516,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4834:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7515,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4826:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7517,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4826:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 7514,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "4821:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 7518,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4821:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "4790:49:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 7520,
                  "nodeType": "ExpressionStatement",
                  "src": "4790:49:29"
                },
                {
                  "assignments": [
                    7522
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7522,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4849:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7521,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "4849:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7526,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7523,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "4867:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7525,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7524,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7472,
                      "src": "4876:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4867:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4849:33:29"
                },
                {
                  "assignments": [
                    7528
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7528,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4892:10:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7527,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4892:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7535,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7530,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7474,
                        "src": "4909:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7531,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7490,
                            "src": "4917:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 7532,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6366,
                          "src": "4917:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 7533,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4917:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7529,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8667,
                      "src": "4905:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 7534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4905:24:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4892:37:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7539,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7528,
                        "src": "4954:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 7540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4961:4:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7536,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7490,
                        "src": "4939:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6343,
                      "src": "4939:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 7541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4939:27:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7542,
                  "nodeType": "ExpressionStatement",
                  "src": "4939:27:29"
                },
                {
                  "assignments": [
                    7544
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7544,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4977:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7543,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8765,
                        "src": "4977:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7548,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7546,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7472,
                        "src": "5003:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7545,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8280,
                      "src": "4997:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 7547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4997:12:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4977:32:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 7552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7549,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7544,
                      "src": "5023:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7550,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8765,
                        "src": "5039:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 7551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5039:10:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "5023:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 7571,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 7568,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7544,
                        "src": "5226:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7569,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8765,
                          "src": "5242:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 7570,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5242:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "5226:27:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7587,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7576,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7528,
                            "src": "5327:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 7577,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7313,
                            "src": "5335:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5327:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7579,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7490,
                                "src": "5347:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 7580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6371,
                              "src": "5347:16:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 7581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5347:18:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7585,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7582,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7522,
                                "src": "5368:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7583,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7319,
                              "src": "5368:18:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 7584,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7307,
                              "src": "5389:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "5368:33:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5347:54:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5327:74:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7606,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7603,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7528,
                            "src": "5568:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7604,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7522,
                              "src": "5576:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7605,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7323,
                            "src": "5576:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5568:20:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7659,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7656,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7528,
                              "src": "6166:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7657,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7522,
                                "src": "6174:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7658,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7321,
                              "src": "6174:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6166:15:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 7695,
                            "nodeType": "Block",
                            "src": "6372:144:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 7684,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6442:3:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7681,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7490,
                                      "src": "6428:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 7683,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6348,
                                    "src": "6428:13:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 7685,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6428:18:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7686,
                                "nodeType": "ExpressionStatement",
                                "src": "6428:18:29"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 7688,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7472,
                                      "src": "6477:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7689,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12908,
                                        "src": "6484:3:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 7690,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6484:10:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 7691,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7528,
                                      "src": "6496:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 7692,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6503:1:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 7687,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8789,
                                    "src": "6465:11:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 7693,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6465:40:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7694,
                                "nodeType": "EmitStatement",
                                "src": "6460:45:29"
                              }
                            ]
                          },
                          "id": 7696,
                          "nodeType": "IfStatement",
                          "src": "6162:354:29",
                          "trueBody": {
                            "id": 7680,
                            "nodeType": "Block",
                            "src": "6183:183:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7664,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7660,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7522,
                                      "src": "6249:1:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                        "typeString": "struct HashRegistrar.Entry storage pointer"
                                      }
                                    },
                                    "id": 7662,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7321,
                                    "src": "6249:7:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 7663,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7528,
                                    "src": "6259:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6249:15:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 7665,
                                "nodeType": "ExpressionStatement",
                                "src": "6249:15:29"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 7669,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6292:3:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7666,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7490,
                                      "src": "6278:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 7668,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6348,
                                    "src": "6278:13:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 7670,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6278:18:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7671,
                                "nodeType": "ExpressionStatement",
                                "src": "6278:18:29"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 7673,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7472,
                                      "src": "6327:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7674,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12908,
                                        "src": "6334:3:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 7675,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6334:10:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 7676,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7528,
                                      "src": "6346:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 7677,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6353:1:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 7672,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8789,
                                    "src": "6315:11:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 7678,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6315:40:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7679,
                                "nodeType": "EmitStatement",
                                "src": "6310:45:29"
                              }
                            ]
                          }
                        },
                        "id": 7697,
                        "nodeType": "IfStatement",
                        "src": "5564:952:29",
                        "trueBody": {
                          "id": 7655,
                          "nodeType": "Block",
                          "src": "5590:566:29",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 7614,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7608,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7522,
                                        "src": "5692:1:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 7609,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7317,
                                      "src": "5692:6:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 7607,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5684:7:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 7610,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5684:15:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 7612,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5711:3:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 7611,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5703:7:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 7613,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5703:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5684:31:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 7627,
                              "nodeType": "IfStatement",
                              "src": "5680:145:29",
                              "trueBody": {
                                "id": 7626,
                                "nodeType": "Block",
                                "src": "5717:108:29",
                                "statements": [
                                  {
                                    "assignments": [
                                      7616
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 7616,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 7626,
                                        "src": "5735:19:29",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$6372",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 7615,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 6372,
                                          "src": "5735:4:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$6372",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 7619,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7617,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7522,
                                        "src": "5757:1:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 7618,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7317,
                                      "src": "5757:6:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5735:28:29"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 7623,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5806:3:29",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 7620,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7616,
                                          "src": "5781:14:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$6372",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 7622,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6348,
                                        "src": "5781:24:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 7624,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5781:29:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 7625,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5781:29:29"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 7633,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7628,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "5962:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7630,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7321,
                                  "src": "5962:7:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7631,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "5972:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7632,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7323,
                                  "src": "5972:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5962:22:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 7634,
                              "nodeType": "ExpressionStatement",
                              "src": "5962:22:29"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 7639,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7635,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "6040:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7637,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7323,
                                  "src": "6040:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 7638,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7528,
                                  "src": "6055:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6040:20:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 7640,
                              "nodeType": "ExpressionStatement",
                              "src": "6040:20:29"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 7645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7641,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "6074:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7643,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7317,
                                  "src": "6074:6:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$6372",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 7644,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7490,
                                  "src": "6083:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$6372",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "6074:12:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 7646,
                              "nodeType": "ExpressionStatement",
                              "src": "6074:12:29"
                            },
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 7648,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7472,
                                    "src": "6117:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7649,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12908,
                                      "src": "6124:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 7650,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6124:10:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 7651,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7528,
                                    "src": "6136:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 7652,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6143:1:29",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 7647,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8789,
                                  "src": "6105:11:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 7653,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6105:40:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 7654,
                              "nodeType": "EmitStatement",
                              "src": "6100:45:29"
                            }
                          ]
                        }
                      },
                      "id": 7698,
                      "nodeType": "IfStatement",
                      "src": "5323:1193:29",
                      "trueBody": {
                        "id": 7602,
                        "nodeType": "Block",
                        "src": "5403:155:29",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 7591,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5484:3:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7588,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7490,
                                  "src": "5470:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$6372",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 7590,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6348,
                                "src": "5470:13:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 7592,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5470:18:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 7593,
                            "nodeType": "ExpressionStatement",
                            "src": "5470:18:29"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 7595,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7472,
                                  "src": "5519:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7596,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12908,
                                    "src": "5526:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 7597,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5526:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 7598,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7528,
                                  "src": "5538:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 7599,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5545:1:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 7594,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8789,
                                "src": "5507:11:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 7600,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5507:40:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 7601,
                            "nodeType": "EmitStatement",
                            "src": "5502:45:29"
                          }
                        ]
                      }
                    },
                    "id": 7699,
                    "nodeType": "IfStatement",
                    "src": "5222:1294:29",
                    "trueBody": {
                      "id": 7575,
                      "nodeType": "Block",
                      "src": "5255:62:29",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 7572,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                12913,
                                12914
                              ],
                              "referencedDeclaration": 12913,
                              "src": "5298:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 7573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5298:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 7574,
                          "nodeType": "ExpressionStatement",
                          "src": "5298:8:29"
                        }
                      ]
                    }
                  },
                  "id": 7700,
                  "nodeType": "IfStatement",
                  "src": "5019:1497:29",
                  "trueBody": {
                    "id": 7567,
                    "nodeType": "Block",
                    "src": "5051:165:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 7556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5144:1:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7553,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7490,
                              "src": "5130:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 7555,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6348,
                            "src": "5130:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 7557,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5130:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7558,
                        "nodeType": "ExpressionStatement",
                        "src": "5130:16:29"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7560,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7472,
                              "src": "5177:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7561,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12908,
                                "src": "5184:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 7562,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5184:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 7563,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7528,
                              "src": "5196:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 7564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5203:1:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 7559,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8789,
                            "src": "5165:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 7565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5165:40:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7566,
                        "nodeType": "EmitStatement",
                        "src": "5160:45:29"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 7702,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7472,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7702,
                  "src": "4566:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4566:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7474,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7702,
                  "src": "4581:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7473,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4581:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7476,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 7702,
                  "src": "4594:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7475,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4594:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4565:43:29"
            },
            "returnParameters": {
              "id": 7478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4618:0:29"
            },
            "scope": 8755,
            "src": "4547:1975:29",
            "stateMutability": "nonpayable",
            "superFunction": 8855,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7767,
              "nodeType": "Block",
              "src": "6695:786:29",
              "statements": [
                {
                  "assignments": [
                    7710
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7710,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 7767,
                      "src": "6705:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7709,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "6705:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7716,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7711,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7301,
                        "src": "6716:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 7713,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7712,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7704,
                        "src": "6727:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6716:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 7715,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7714,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7706,
                      "src": "6735:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6716:24:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6705:35:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7734,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7724,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7719,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7710,
                                "src": "7176:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              ],
                              "id": 7718,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7168:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7168:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 7722,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7192:3:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 7721,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7184:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7723,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7184:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7168:28:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7725,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12910,
                            "src": "7200:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7730,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7726,
                                    "name": "bid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7710,
                                    "src": "7207:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$6372",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 7727,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "creationDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6371,
                                  "src": "7207:16:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                    "typeString": "function () view external returns (uint256)"
                                  }
                                },
                                "id": 7728,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7207:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 7729,
                                "name": "totalAuctionLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7304,
                                "src": "7228:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "7207:39:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 7731,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7249:7:29",
                              "subdenomination": "weeks",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1209600_by_1",
                                "typeString": "int_const 1209600"
                              },
                              "value": "2"
                            },
                            "src": "7207:49:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7200:56:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7168:88:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7717,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "7160:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7160:97:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7736,
                  "nodeType": "ExpressionStatement",
                  "src": "7160:97:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7740,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "7347:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7741,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7347:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7737,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7710,
                        "src": "7334:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6331,
                      "src": "7334:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 7742,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7334:24:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7743,
                  "nodeType": "ExpressionStatement",
                  "src": "7334:24:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 7747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7382:1:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7744,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7710,
                        "src": "7368:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6348,
                      "src": "7368:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 7748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7368:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7749,
                  "nodeType": "ExpressionStatement",
                  "src": "7368:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 7750,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7301,
                          "src": "7394:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 7753,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 7751,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7704,
                          "src": "7405:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7394:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 7754,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7752,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7706,
                        "src": "7413:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7394:24:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7426:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7755,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "7421:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 7757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7421:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "7394:34:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 7759,
                  "nodeType": "ExpressionStatement",
                  "src": "7394:34:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7761,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7706,
                        "src": "7455:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7762,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7704,
                        "src": "7461:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7469:1:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 7764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7472:1:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 7760,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8789,
                      "src": "7443:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 7765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7443:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7766,
                  "nodeType": "EmitStatement",
                  "src": "7438:36:29"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 7768,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7704,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 7768,
                  "src": "6656:14:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7703,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6656:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7706,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 7768,
                  "src": "6672:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6672:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6655:30:29"
            },
            "returnParameters": {
              "id": 7708,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6695:0:29"
            },
            "scope": 8755,
            "src": "6637:844:29",
            "stateMutability": "nonpayable",
            "superFunction": 8862,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7822,
              "nodeType": "Block",
              "src": "7707:356:29",
              "statements": [
                {
                  "assignments": [
                    7777
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7777,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7822,
                      "src": "7717:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7776,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "7717:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7781,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7778,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "7735:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7780,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7779,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7770,
                      "src": "7744:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7735:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7717:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7782,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7777,
                        "src": "7849:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7784,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "7849:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7786,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7777,
                            "src": "7863:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 7787,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7321,
                          "src": "7863:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 7788,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7313,
                          "src": "7872:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7785,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8649,
                        "src": "7859:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 7789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7859:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7849:32:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7791,
                  "nodeType": "ExpressionStatement",
                  "src": "7849:32:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7797,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "7909:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7798,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "7909:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 7799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7918:4:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7792,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "7891:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7795,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "7891:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7796,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6343,
                      "src": "7891:17:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 7800,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:32:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7801,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:32:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7803,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7770,
                        "src": "7953:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7804,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7777,
                              "src": "7960:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7805,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7317,
                            "src": "7960:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 7806,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6356,
                          "src": "7960:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 7807,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7960:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 7802,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8631,
                      "src": "7934:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 7808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7934:41:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7809,
                  "nodeType": "ExpressionStatement",
                  "src": "7934:41:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7811,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7770,
                        "src": "8005:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7812,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7777,
                              "src": "8012:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7813,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7317,
                            "src": "8012:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 7814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6356,
                          "src": "8012:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 7815,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8012:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7816,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "8028:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7817,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "8028:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7818,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "8037:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7819,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "8037:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7810,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8799,
                      "src": "7990:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 7820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7990:66:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7821,
                  "nodeType": "EmitStatement",
                  "src": "7985:71:29"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 7823,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 7773,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7770,
                    "src": "7700:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 7774,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7772,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "7690:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7690:16:29"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7770,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7823,
                  "src": "7666:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7769,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7666:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7665:15:29"
            },
            "returnParameters": {
              "id": 7775,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7707:0:29"
            },
            "scope": 8755,
            "src": "7641:422:29",
            "stateMutability": "nonpayable",
            "superFunction": 8867,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7860,
              "nodeType": "Block",
              "src": "8357:174:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "id": 7838,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7834,
                          "name": "newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7827,
                          "src": "8375:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 7836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8395:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7835,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8387:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8387:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "8375:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7833,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "8367:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8367:33:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7840,
                  "nodeType": "ExpressionStatement",
                  "src": "8367:33:29"
                },
                {
                  "assignments": [
                    7842
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7842,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7860,
                      "src": "8411:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7841,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "8411:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7846,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7843,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "8429:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7845,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7844,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7825,
                      "src": "8438:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8429:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8411:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7852,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7827,
                        "src": "8470:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7847,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7842,
                          "src": "8454:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7850,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "8454:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6331,
                      "src": "8454:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 7853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8454:25:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7854,
                  "nodeType": "ExpressionStatement",
                  "src": "8454:25:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7856,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7825,
                        "src": "8508:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7857,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7827,
                        "src": "8515:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 7855,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8631,
                      "src": "8489:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 7858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8489:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7859,
                  "nodeType": "ExpressionStatement",
                  "src": "8489:35:29"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 7861,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 7830,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7825,
                    "src": "8350:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 7831,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7829,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "8340:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8340:16:29"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7825,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7861,
                  "src": "8290:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8290:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7827,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 7861,
                  "src": "8305:24:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 7826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8305:15:29",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8289:41:29"
            },
            "returnParameters": {
              "id": 7832,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8357:0:29"
            },
            "scope": 8755,
            "src": "8272:259:29",
            "stateMutability": "nonpayable",
            "superFunction": 8874,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7934,
              "nodeType": "Block",
              "src": "8797:382:29",
              "statements": [
                {
                  "assignments": [
                    7870
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7870,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7934,
                      "src": "8807:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7869,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "8807:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7874,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7871,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "8825:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7873,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7872,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7863,
                      "src": "8834:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8825:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8807:33:29"
                },
                {
                  "assignments": [
                    7876
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7876,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 7934,
                      "src": "8850:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7875,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "8850:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7879,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 7877,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7870,
                      "src": "8870:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry storage pointer"
                      }
                    },
                    "id": 7878,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7317,
                    "src": "8870:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8850:26:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7881,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12910,
                            "src": "8895:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7882,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7870,
                                "src": "8902:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7883,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7319,
                              "src": "8902:18:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "333635",
                              "id": 7884,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8923:8:29",
                              "subdenomination": "days",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31536000_by_1",
                                "typeString": "int_const 31536000"
                              },
                              "value": "365"
                            },
                            "src": "8902:29:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8895:36:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7894,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7889,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7291,
                                "src": "8945:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7887,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7289,
                                "src": "8935:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$6761",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 7888,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6730,
                              "src": "8935:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 7890,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8935:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7892,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12964,
                                "src": "8966:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 7891,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8958:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7893,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8958:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "8935:36:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8895:76:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7880,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "8887:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8887:85:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7897,
                  "nodeType": "ExpressionStatement",
                  "src": "8887:85:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7898,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7870,
                        "src": "8983:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7900,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "8983:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7901,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8993:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "8983:11:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7903,
                  "nodeType": "ExpressionStatement",
                  "src": "8983:11:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7904,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7870,
                        "src": "9004:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7906,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "9004:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9019:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9004:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7909,
                  "nodeType": "ExpressionStatement",
                  "src": "9004:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7910,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7870,
                        "src": "9030:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7912,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7317,
                      "src": "9030:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9044:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7913,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "9039:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 7915,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9039:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "9030:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 7917,
                  "nodeType": "ExpressionStatement",
                  "src": "9030:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7919,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7863,
                        "src": "9077:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7918,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8397,
                      "src": "9057:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9057:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7921,
                  "nodeType": "ExpressionStatement",
                  "src": "9057:26:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 7925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9116:4:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7922,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7876,
                        "src": "9093:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7924,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6348,
                      "src": "9093:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 7926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9093:28:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7927,
                  "nodeType": "ExpressionStatement",
                  "src": "9093:28:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7929,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7863,
                        "src": "9149:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7930,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7870,
                          "src": "9156:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7931,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "9156:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7928,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8805,
                      "src": "9136:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 7932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9136:28:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7933,
                  "nodeType": "EmitStatement",
                  "src": "9131:33:29"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 7935,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 7866,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7863,
                    "src": "8790:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 7867,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7865,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "8780:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8780:16:29"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7864,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7863,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7935,
                  "src": "8756:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7862,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8756:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8755:15:29"
            },
            "returnParameters": {
              "id": 7868,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8797:0:29"
            },
            "scope": 8755,
            "src": "8735:444:29",
            "stateMutability": "nonpayable",
            "superFunction": 8879,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8055,
              "nodeType": "Block",
              "src": "9704:675:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7955,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7952,
                              "name": "unhashedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7937,
                              "src": "9729:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 7951,
                            "name": "strlen",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8754,
                            "src": "9722:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (string memory) pure returns (uint256)"
                            }
                          },
                          "id": 7953,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9722:20:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 7954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9746:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "src": "9722:25:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7950,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "9714:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9714:34:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7957,
                  "nodeType": "ExpressionStatement",
                  "src": "9714:34:29"
                },
                {
                  "assignments": [
                    7959
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7959,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "9758:12:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7958,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "9758:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7966,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7963,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7937,
                            "src": "9794:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7961,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12895,
                            "src": "9783:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7962,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9783:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7964,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9783:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7960,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12902,
                      "src": "9773:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7965,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9773:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9758:50:29"
                },
                {
                  "assignments": [
                    7968
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7968,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "9819:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7967,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "9819:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7972,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7969,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "9837:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7971,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7970,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7959,
                      "src": "9846:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9837:14:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9819:32:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7974,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7959,
                        "src": "9882:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7973,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8397,
                      "src": "9862:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9862:25:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7976,
                  "nodeType": "ExpressionStatement",
                  "src": "9862:25:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 7984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7978,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7968,
                            "src": "9910:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 7979,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7317,
                          "src": "9910:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$6372",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$6372",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 7977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9902:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 7980,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9902:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 7982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9929:3:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9921:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 7983,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9921:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "9902:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8025,
                  "nodeType": "IfStatement",
                  "src": "9898:321:29",
                  "trueBody": {
                    "id": 8024,
                    "nodeType": "Block",
                    "src": "9935:284:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7985,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7968,
                              "src": "10050:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7987,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7321,
                            "src": "10050:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7989,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7968,
                                  "src": "10064:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 7990,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7321,
                                "src": "10064:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 7991,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7313,
                                "src": "10073:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7988,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8649,
                              "src": "10060:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 7992,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10060:22:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10050:32:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7994,
                        "nodeType": "ExpressionStatement",
                        "src": "10050:32:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8003,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8000,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7968,
                                  "src": "10114:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 8001,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7321,
                                "src": "10114:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 8002,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10122:1:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "10114:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 8004,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10125:5:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7995,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7968,
                                "src": "10096:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7998,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7317,
                              "src": "10096:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 7999,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6343,
                            "src": "10096:17:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 8005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10096:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8006,
                        "nodeType": "ExpressionStatement",
                        "src": "10096:35:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8012,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12908,
                                "src": "10161:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 8013,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10161:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8007,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7968,
                                "src": "10145:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 8010,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7317,
                              "src": "10145:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 8011,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6331,
                            "src": "10145:15:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                              "typeString": "function (address payable) external"
                            }
                          },
                          "id": 8014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10145:27:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8015,
                        "nodeType": "ExpressionStatement",
                        "src": "10145:27:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 8021,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10203:4:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8016,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7968,
                                "src": "10186:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 8019,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7317,
                              "src": "10186:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 8020,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6348,
                            "src": "10186:16:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 8022,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10186:22:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8023,
                        "nodeType": "ExpressionStatement",
                        "src": "10186:22:29"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8027,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7959,
                        "src": "10250:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 8028,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7937,
                        "src": "10256:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8029,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7968,
                          "src": "10270:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8030,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "10270:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8031,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7968,
                          "src": "10279:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8032,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "10279:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8026,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8815,
                      "src": "10234:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 8033,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10234:64:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8034,
                  "nodeType": "EmitStatement",
                  "src": "10229:69:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8039,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8035,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7968,
                        "src": "10309:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8037,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "10309:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8038,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10319:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10309:11:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8040,
                  "nodeType": "ExpressionStatement",
                  "src": "10309:11:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8041,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7968,
                        "src": "10330:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8043,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "10330:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8044,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10345:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10330:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8046,
                  "nodeType": "ExpressionStatement",
                  "src": "10330:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8047,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7968,
                        "src": "10356:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8049,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7317,
                      "src": "10356:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 8051,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10370:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 8050,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "10365:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 8052,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10365:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "10356:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8054,
                  "nodeType": "ExpressionStatement",
                  "src": "10356:16:29"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 8056,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7943,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7937,
                            "src": "9672:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7941,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12895,
                            "src": "9661:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9661:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9661:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7940,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12902,
                      "src": "9651:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9651:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 7946,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8765,
                      "src": "9688:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 7947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9688:10:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 7948,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7939,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7340,
                  "src": "9643:7:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$8765_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9643:56:29"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7937,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 8056,
                  "src": "9588:28:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7936,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9588:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9587:30:29"
            },
            "returnParameters": {
              "id": 7949,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9704:0:29"
            },
            "scope": 8755,
            "src": "9564:815:29",
            "stateMutability": "nonpayable",
            "superFunction": 8884,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8092,
              "nodeType": "Block",
              "src": "11063:176:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8063,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8059,
                            "src": "11081:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 8064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11081:13:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 8065,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11098:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11081:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8062,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "11073:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11073:27:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8068,
                  "nodeType": "ExpressionStatement",
                  "src": "11073:27:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 8080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8071,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8059,
                                "src": "11124:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 8076,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8075,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8072,
                                    "name": "labels",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8059,
                                    "src": "11131:6:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 8073,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "11131:13:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 8074,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11147:1:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "11131:17:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11124:25:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 8070,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "11118:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 8077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11118:32:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8078,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8765,
                            "src": "11154:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 8079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Owned",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11154:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "11118:46:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8069,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "11110:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11110:55:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8082,
                  "nodeType": "ExpressionStatement",
                  "src": "11110:55:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8087,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8084,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8059,
                            "src": "11196:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 8085,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11196:13:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 8086,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11212:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11196:17:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 8088,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8059,
                        "src": "11215:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 8089,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7291,
                        "src": "11223:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8083,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8606,
                      "src": "11176:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 8090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11176:56:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8091,
                  "nodeType": "ExpressionStatement",
                  "src": "11176:56:29"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [keccak256('foo'), keccak256('bar')].",
            "id": 8093,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8059,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 8093,
                  "src": "11027:25:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8057,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11027:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8058,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11027:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11026:27:29"
            },
            "returnParameters": {
              "id": 8061,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11063:0:29"
            },
            "scope": 8755,
            "src": "11008:231:29",
            "stateMutability": "nonpayable",
            "superFunction": 8890,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8167,
              "nodeType": "Block",
              "src": "11541:496:29",
              "statements": [
                {
                  "assignments": [
                    8102
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8102,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 8167,
                      "src": "11551:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 8101,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11551:7:29",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8107,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8105,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7291,
                        "src": "11581:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8103,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "11571:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8104,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6730,
                      "src": "11571:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 8106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11571:19:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11551:39:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 8113,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8109,
                          "name": "registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8102,
                          "src": "11608:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8111,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12964,
                              "src": "11629:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                "typeString": "contract HashRegistrar"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                "typeString": "contract HashRegistrar"
                              }
                            ],
                            "id": 8110,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11621:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 8112,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11621:13:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11608:26:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8108,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "11600:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11600:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8115,
                  "nodeType": "ExpressionStatement",
                  "src": "11600:35:29"
                },
                {
                  "assignments": [
                    8117
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8117,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 8167,
                      "src": "11674:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8116,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "11674:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8121,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8118,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "11692:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8120,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8119,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8095,
                      "src": "11701:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11692:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11674:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8127,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8102,
                        "src": "11737:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8122,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8117,
                          "src": "11717:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8125,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "11717:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 8126,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6336,
                      "src": "11717:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 8128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11717:30:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8129,
                  "nodeType": "ExpressionStatement",
                  "src": "11717:30:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8134,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8095,
                        "src": "11860:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8135,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8117,
                          "src": "11867:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8136,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "11867:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8137,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8117,
                          "src": "11875:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8138,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "11875:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8131,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8102,
                            "src": "11825:9:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 8130,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8920,
                          "src": "11815:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$8920_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 8132,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11815:20:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$8920",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 8133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8904,
                      "src": "11815:44:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$6372_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 8139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11815:79:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8140,
                  "nodeType": "ExpressionStatement",
                  "src": "11815:79:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8141,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "11935:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8143,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7317,
                      "src": "11935:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 8145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11949:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 8144,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "11944:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 8146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11944:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11935:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8148,
                  "nodeType": "ExpressionStatement",
                  "src": "11935:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8149,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "11961:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8151,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7319,
                      "src": "11961:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11982:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11961:22:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8154,
                  "nodeType": "ExpressionStatement",
                  "src": "11961:22:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8155,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "11993:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8157,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "11993:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8158,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12003:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11993:11:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8160,
                  "nodeType": "ExpressionStatement",
                  "src": "11993:11:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8165,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8161,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "12014:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8163,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "12014:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8164,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12029:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12014:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8166,
                  "nodeType": "ExpressionStatement",
                  "src": "12014:16:29"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 8168,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 8098,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8095,
                    "src": "11534:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 8099,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 8097,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "11524:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11524:16:29"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8095,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8168,
                  "src": "11500:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8094,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11500:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11499:15:29"
            },
            "returnParameters": {
              "id": 8100,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11541:0:29"
            },
            "scope": 8755,
            "src": "11472:565:29",
            "stateMutability": "nonpayable",
            "superFunction": 8895,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8183,
              "nodeType": "Block",
              "src": "12523:82:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8177,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8170,
                    "src": "12533:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8178,
                  "nodeType": "ExpressionStatement",
                  "src": "12533:4:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8179,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8172,
                    "src": "12539:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8180,
                  "nodeType": "ExpressionStatement",
                  "src": "12539:4:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8181,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8174,
                    "src": "12545:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8182,
                  "nodeType": "ExpressionStatement",
                  "src": "12545:16:29"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 8184,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8170,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8184,
                  "src": "12466:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8169,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12466:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8172,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 8184,
                  "src": "12480:9:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$6372",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8171,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6372,
                    "src": "12480:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8174,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 8184,
                  "src": "12491:21:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8173,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12491:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12465:48:29"
            },
            "returnParameters": {
              "id": 8176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12523:0:29"
            },
            "scope": 8755,
            "src": "12433:172:29",
            "stateMutability": "nonpayable",
            "superFunction": 8904,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8220,
              "nodeType": "Block",
              "src": "12699:141:29",
              "statements": [
                {
                  "assignments": [
                    8200
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8200,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 8220,
                      "src": "12709:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8199,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "12709:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8204,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8201,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "12727:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8203,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8202,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8186,
                      "src": "12736:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12727:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12709:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8206,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8186,
                            "src": "12766:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8205,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8280,
                          "src": "12760:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 8207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12760:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8209,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8200,
                              "src": "12782:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 8210,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7317,
                            "src": "12782:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 8208,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12774:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8211,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12774:15:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8212,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8200,
                          "src": "12791:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8213,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "12791:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8214,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8200,
                          "src": "12811:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8215,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "12811:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8216,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8200,
                          "src": "12820:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8217,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7323,
                        "src": "12820:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 8218,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "12759:74:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$8765_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,address,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 8198,
                  "id": 8219,
                  "nodeType": "Return",
                  "src": "12752:81:29"
                }
              ]
            },
            "documentation": null,
            "id": 8221,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8186,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12628:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8185,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12628:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12627:15:29"
            },
            "returnParameters": {
              "id": 8198,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8189,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12666:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$8765",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8188,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8765,
                    "src": "12666:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8191,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12672:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8190,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12672:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8193,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12681:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8192,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12681:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8195,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12687:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8194,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12687:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8197,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12693:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8196,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12693:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12665:33:29"
            },
            "scope": 8755,
            "src": "12611:229:29",
            "stateMutability": "view",
            "superFunction": 8919,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8279,
              "nodeType": "Block",
              "src": "13126:528:29",
              "statements": [
                {
                  "assignments": [
                    8229
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8229,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 8279,
                      "src": "13136:19:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8228,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "13136:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8233,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8230,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "13158:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8232,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8231,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8223,
                      "src": "13167:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13158:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13136:37:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 8238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "13188:22:29",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8235,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8223,
                          "src": "13199:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 8236,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12910,
                          "src": "13206:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 8234,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8296,
                        "src": "13189:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 8237,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13189:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 8246,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 8243,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12910,
                        "src": "13274:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8244,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8229,
                          "src": "13280:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8245,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "13280:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13274:28:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 8276,
                      "nodeType": "Block",
                      "src": "13492:156:29",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8263,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8229,
                                "src": "13510:5:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 8264,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7323,
                              "src": "13510:16:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8265,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13530:1:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "13510:21:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 8274,
                            "nodeType": "Block",
                            "src": "13588:50:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8271,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13613:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8272,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13613:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8273,
                                "nodeType": "Return",
                                "src": "13606:17:29"
                              }
                            ]
                          },
                          "id": 8275,
                          "nodeType": "IfStatement",
                          "src": "13506:132:29",
                          "trueBody": {
                            "id": 8270,
                            "nodeType": "Block",
                            "src": "13533:49:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8267,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13558:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8268,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13558:9:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8269,
                                "nodeType": "Return",
                                "src": "13551:16:29"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 8277,
                    "nodeType": "IfStatement",
                    "src": "13270:378:29",
                    "trueBody": {
                      "id": 8262,
                      "nodeType": "Block",
                      "src": "13304:182:29",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8252,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 8247,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12910,
                              "src": "13322:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8251,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8248,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8229,
                                  "src": "13328:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 8249,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7319,
                                "src": "13328:22:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 8250,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7307,
                                "src": "13353:12:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13328:37:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13322:43:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 8260,
                            "nodeType": "Block",
                            "src": "13425:51:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8257,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13450:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8258,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13450:11:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8259,
                                "nodeType": "Return",
                                "src": "13443:18:29"
                              }
                            ]
                          },
                          "id": 8261,
                          "nodeType": "IfStatement",
                          "src": "13318:158:29",
                          "trueBody": {
                            "id": 8256,
                            "nodeType": "Block",
                            "src": "13367:52:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8253,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13392:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8254,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13392:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8255,
                                "nodeType": "Return",
                                "src": "13385:19:29"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 8278,
                  "nodeType": "IfStatement",
                  "src": "13184:464:29",
                  "trueBody": {
                    "id": 8242,
                    "nodeType": "Block",
                    "src": "13212:52:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8239,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8765,
                            "src": "13233:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 8240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "13233:20:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 8227,
                        "id": 8241,
                        "nodeType": "Return",
                        "src": "13226:27:29"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8280,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8224,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8223,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8280,
                  "src": "13084:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8222,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13084:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13083:15:29"
            },
            "returnParameters": {
              "id": 8227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8226,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8280,
                  "src": "13120:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$8765",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8225,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8765,
                    "src": "13120:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13119:6:29"
            },
            "scope": 8755,
            "src": "13069:585:29",
            "stateMutability": "view",
            "superFunction": 8822,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8295,
              "nodeType": "Block",
              "src": "14059:58:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8293,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8289,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8284,
                      "src": "14076:10:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8291,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8282,
                          "src": "14104:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 8290,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8319,
                        "src": "14089:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 8292,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14089:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14076:34:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 8288,
                  "id": 8294,
                  "nodeType": "Return",
                  "src": "14069:41:29"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n     * Each name will be assigned a random date in which its auction\ncan be started, from 0 to 8 weeks\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 8296,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8282,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8296,
                  "src": "13992:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8281,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13992:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8284,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 8296,
                  "src": "14007:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8283,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14007:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13991:32:29"
            },
            "returnParameters": {
              "id": 8288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8287,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 8296,
                  "src": "14045:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8286,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14045:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14044:14:29"
            },
            "scope": 8755,
            "src": "13973:144:29",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8318,
              "nodeType": "Block",
              "src": "14424:140:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8303,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7315,
                      "src": "14441:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8311,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 8304,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7310,
                                  "src": "14461:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 8309,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 8306,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8298,
                                            "src": "14482:5:29",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 8305,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14477:4:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 8307,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14477:11:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 8308,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "14492:3:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "14477:18:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 8310,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "14476:20:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14461:35:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 8312,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "14460:37:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 8313,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14501:3:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "14460:44:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 8315,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14459:46:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14441:64:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8302,
                  "id": 8317,
                  "nodeType": "Return",
                  "src": "14434:71:29"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n     * @param _hash The hash to start an auction on",
            "id": 8319,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8298,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8319,
                  "src": "14382:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8297,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14382:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14381:15:29"
            },
            "returnParameters": {
              "id": 8302,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8301,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8319,
                  "src": "14418:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8300,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14418:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14417:6:29"
            },
            "scope": 8755,
            "src": "14358:206:29",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8342,
              "nodeType": "Block",
              "src": "14954:77:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8335,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8321,
                            "src": "14998:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 8336,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8323,
                            "src": "15004:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 8337,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8325,
                            "src": "15011:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 8338,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8327,
                            "src": "15018:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 8333,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12895,
                            "src": "14981:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 8334,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14981:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 8339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14981:42:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 8332,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12902,
                      "src": "14971:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 8340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14971:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 8331,
                  "id": 8341,
                  "nodeType": "Return",
                  "src": "14964:60:29"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 8343,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8321,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14869:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8320,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14869:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8323,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14883:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8322,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14883:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8325,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14898:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8324,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14898:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8327,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14910:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8326,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14910:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14868:55:29"
            },
            "returnParameters": {
              "id": 8331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8330,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14945:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8329,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14945:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14944:9:29"
            },
            "scope": 8755,
            "src": "14853:178:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8396,
              "nodeType": "Block",
              "src": "15090:302:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 8355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8350,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7291,
                          "src": "15114:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 8348,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "15104:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$6761",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 8349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6730,
                        "src": "15104:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 8351,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15104:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8353,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12964,
                          "src": "15135:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 8352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15127:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 8354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15127:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15104:36:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8395,
                  "nodeType": "IfStatement",
                  "src": "15100:286:29",
                  "trueBody": {
                    "id": 8394,
                    "nodeType": "Block",
                    "src": "15142:244:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8359,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7291,
                              "src": "15176:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 8360,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8345,
                              "src": "15186:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 8362,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12964,
                                  "src": "15201:4:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                    "typeString": "contract HashRegistrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                    "typeString": "contract HashRegistrar"
                                  }
                                ],
                                "id": 8361,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15193:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 8363,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15193:13:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8356,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "15156:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$6761",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 8358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6695,
                            "src": "15156:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                            }
                          },
                          "id": 8364,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15156:51:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 8365,
                        "nodeType": "ExpressionStatement",
                        "src": "15156:51:29"
                      },
                      {
                        "assignments": [
                          8367
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8367,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 8394,
                            "src": "15221:12:29",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 8366,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "15221:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 8375,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 8371,
                                  "name": "rootNode",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7291,
                                  "src": "15263:8:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 8372,
                                  "name": "label",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8345,
                                  "src": "15273:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8369,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12895,
                                  "src": "15246:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 8370,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "15246:16:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 8373,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15246:33:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 8368,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12902,
                            "src": "15236:9:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 8374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15236:44:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15221:59:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8379,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8367,
                              "src": "15310:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 8381,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15324:3:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 8380,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15316:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 8382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15316:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8376,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "15294:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$6761",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 8378,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6702,
                            "src": "15294:15:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 8383,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15294:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8384,
                        "nodeType": "ExpressionStatement",
                        "src": "15294:35:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8388,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8367,
                              "src": "15356:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 8390,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15370:3:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 8389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15362:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 8391,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15362:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8385,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "15343:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$6761",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 8387,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6709,
                            "src": "15343:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 8392,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15343:32:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8393,
                        "nodeType": "ExpressionStatement",
                        "src": "15343:32:29"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8397,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8345,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 8397,
                  "src": "15066:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8344,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15066:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15065:15:29"
            },
            "returnParameters": {
              "id": 8347,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15090:0:29"
            },
            "scope": 8755,
            "src": "15037:355:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8455,
              "nodeType": "Block",
              "src": "15460:366:29",
              "statements": [
                {
                  "assignments": [
                    8405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8405,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 8455,
                      "src": "15470:9:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8404,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8765,
                        "src": "15470:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8409,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8407,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8399,
                        "src": "15488:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8406,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8280,
                      "src": "15482:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 8408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15482:12:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15470:24:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 8413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8410,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8405,
                      "src": "15508:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8411,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8765,
                        "src": "15516:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 8412,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15516:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "15508:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8415,
                  "nodeType": "IfStatement",
                  "src": "15504:33:29",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 8403,
                    "id": 8414,
                    "nodeType": "Return",
                    "src": "15530:7:29"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 8420,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8417,
                          "name": "mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8405,
                          "src": "15554:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8418,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8765,
                            "src": "15562:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 8419,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Open",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15562:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "15554:17:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8416,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "15546:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8421,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15546:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8422,
                  "nodeType": "ExpressionStatement",
                  "src": "15546:26:29"
                },
                {
                  "assignments": [
                    8424
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8424,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 8455,
                      "src": "15583:24:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8423,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "15583:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8428,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8425,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "15610:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8427,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8426,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8399,
                      "src": "15619:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15610:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15583:42:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8429,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8424,
                        "src": "15635:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8431,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7319,
                      "src": "15635:27:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 8434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 8432,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12910,
                        "src": "15665:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 8433,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7304,
                        "src": "15671:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "15665:24:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15635:54:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8436,
                  "nodeType": "ExpressionStatement",
                  "src": "15635:54:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8437,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8424,
                        "src": "15699:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8439,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "15699:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8440,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15718:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15699:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8442,
                  "nodeType": "ExpressionStatement",
                  "src": "15699:20:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8447,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8443,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8424,
                        "src": "15729:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8445,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "15729:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15753:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15729:25:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8448,
                  "nodeType": "ExpressionStatement",
                  "src": "15729:25:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8450,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8399,
                        "src": "15784:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8451,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8424,
                          "src": "15791:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8452,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "15791:27:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8449,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8771,
                      "src": "15769:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 8453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15769:50:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8454,
                  "nodeType": "EmitStatement",
                  "src": "15764:55:29"
                }
              ]
            },
            "documentation": null,
            "id": 8456,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 8402,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 8401,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7395,
                  "src": "15445:12:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15445:14:29"
              }
            ],
            "name": "_startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8399,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8456,
                  "src": "15421:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15421:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15420:15:29"
            },
            "returnParameters": {
              "id": 8403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15460:0:29"
            },
            "scope": 8755,
            "src": "15398:428:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8481,
              "nodeType": "Block",
              "src": "15891:109:29",
              "statements": [
                {
                  "body": {
                    "id": 8479,
                    "nodeType": "Block",
                    "src": "15944:50:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8474,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8459,
                                "src": "15972:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 8476,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8475,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8463,
                                "src": "15980:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15972:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 8473,
                            "name": "_startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8456,
                            "src": "15958:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 8477,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15958:25:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8478,
                        "nodeType": "ExpressionStatement",
                        "src": "15958:25:29"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8466,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8463,
                      "src": "15918:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8467,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8459,
                        "src": "15922:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 8468,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15922:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15918:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8480,
                  "initializationExpression": {
                    "assignments": [
                      8463
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8463,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 8480,
                        "src": "15906:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8462,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15906:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 8465,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8464,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15915:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15906:10:29"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8471,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15938:4:29",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8470,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8463,
                        "src": "15938:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8472,
                    "nodeType": "ExpressionStatement",
                    "src": "15938:4:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "15901:93:29"
                }
              ]
            },
            "documentation": null,
            "id": 8482,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8459,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 8482,
                  "src": "15856:24:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8457,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15856:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8458,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15856:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15855:26:29"
            },
            "returnParameters": {
              "id": 8461,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15891:0:29"
            },
            "scope": 8755,
            "src": "15832:168:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8539,
              "nodeType": "Block",
              "src": "16051:357:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 8499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 8489,
                                  "name": "sealedBids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7301,
                                  "src": "16077:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                                    "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                                  }
                                },
                                "id": 8492,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8490,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12908,
                                    "src": "16088:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 8491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "16088:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16077:22:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                                  "typeString": "mapping(bytes32 => contract Deed)"
                                }
                              },
                              "id": 8494,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8493,
                                "name": "sealedBid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8484,
                                "src": "16100:9:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16077:33:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 8488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16069:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 8495,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16069:42:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 8497,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16123:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 8496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16115:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 8498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16115:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "16069:58:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8487,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "16061:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16061:67:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8501,
                  "nodeType": "ExpressionStatement",
                  "src": "16061:67:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8506,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8503,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "16146:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 8504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16146:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 8505,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7313,
                          "src": "16159:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16146:21:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8502,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "16138:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16138:30:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8508,
                  "nodeType": "ExpressionStatement",
                  "src": "16138:30:29"
                },
                {
                  "assignments": [
                    8510
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8510,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 8539,
                      "src": "16233:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8509,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "16233:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8521,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8518,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "16286:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 8519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16286:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8515,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "16275:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 8516,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16275:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 8512,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "16245:22:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$",
                                "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 8511,
                                "name": "DeedImplementation",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 6624,
                                "src": "16249:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DeedImplementation_$6624",
                                  "typeString": "contract DeedImplementation"
                                }
                              }
                            }
                          ],
                          "id": 8513,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16244:24:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$",
                            "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                          }
                        },
                        "id": 8514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16244:30:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$value_$",
                          "typeString": "function (uint256) returns (function (address payable) payable returns (contract DeedImplementation))"
                        }
                      },
                      "id": 8517,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16244:41:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$value",
                        "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                      }
                    },
                    "id": 8520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16244:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DeedImplementation_$6624",
                      "typeString": "contract DeedImplementation"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16233:64:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 8522,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7301,
                          "src": "16307:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 8526,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8523,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "16318:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 8524,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16318:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16307:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 8527,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8525,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8484,
                        "src": "16330:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "16307:33:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8528,
                      "name": "bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8510,
                      "src": "16343:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16307:39:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8530,
                  "nodeType": "ExpressionStatement",
                  "src": "16307:39:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8532,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8484,
                        "src": "16368:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8533,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "16379:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 8534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16379:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8535,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "16391:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 8536,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16391:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8531,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8779,
                      "src": "16361:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 8537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16361:40:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8538,
                  "nodeType": "EmitStatement",
                  "src": "16356:45:29"
                }
              ]
            },
            "documentation": null,
            "id": 8540,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8484,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 8540,
                  "src": "16023:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8483,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16023:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16022:19:29"
            },
            "returnParameters": {
              "id": 8486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16051:0:29"
            },
            "scope": 8755,
            "src": "16006:402:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8605,
              "nodeType": "Block",
              "src": "16501:441:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8553,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8547,
                        "src": "16569:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 8554,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8545,
                          "src": "16575:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 8556,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8555,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8542,
                          "src": "16582:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16575:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8558,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12964,
                            "src": "16596:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                              "typeString": "contract HashRegistrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                              "typeString": "contract HashRegistrar"
                            }
                          ],
                          "id": 8557,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16588:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16588:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8550,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "16549:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8552,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6695,
                      "src": "16549:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                      }
                    },
                    "id": 8560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16549:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8561,
                  "nodeType": "ExpressionStatement",
                  "src": "16549:53:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8562,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8547,
                      "src": "16612:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8566,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8547,
                              "src": "16646:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8567,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8545,
                                "src": "16652:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 8569,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8568,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8542,
                                "src": "16659:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16652:11:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8564,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12895,
                              "src": "16629:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 8565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "16629:16:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 8570,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16629:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 8563,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12902,
                        "src": "16619:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 8571,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16619:46:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16612:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8573,
                  "nodeType": "ExpressionStatement",
                  "src": "16612:53:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8574,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8542,
                      "src": "16724:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16730:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16724:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8586,
                  "nodeType": "IfStatement",
                  "src": "16720:80:29",
                  "trueBody": {
                    "id": 8585,
                    "nodeType": "Block",
                    "src": "16733:67:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 8578,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8542,
                                "src": "16767:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 8579,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16773:1:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "16767:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 8581,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8545,
                              "src": "16776:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 8582,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8547,
                              "src": "16784:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 8577,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8606,
                            "src": "16747:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 8583,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16747:42:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8584,
                        "nodeType": "ExpressionStatement",
                        "src": "16747:42:29"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8590,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8547,
                        "src": "16874:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 8592,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16888:3:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 8591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16880:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16880:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8587,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "16858:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8589,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6702,
                      "src": "16858:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 8594,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16858:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8595,
                  "nodeType": "ExpressionStatement",
                  "src": "16858:35:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8599,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8547,
                        "src": "16916:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 8601,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16930:3:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 8600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16922:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16922:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8596,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "16903:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6709,
                      "src": "16903:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 8603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16903:32:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8604,
                  "nodeType": "ExpressionStatement",
                  "src": "16903:32:29"
                }
              ]
            },
            "documentation": null,
            "id": 8606,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8548,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8542,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 8606,
                  "src": "16443:8:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8541,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "16443:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8545,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 8606,
                  "src": "16453:23:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8543,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "16453:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8544,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16453:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8547,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 8606,
                  "src": "16478:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8546,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16478:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16442:49:29"
            },
            "returnParameters": {
              "id": 8549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16501:0:29"
            },
            "scope": 8755,
            "src": "16414:528:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8630,
              "nodeType": "Block",
              "src": "17198:118:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 8620,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8615,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7291,
                          "src": "17222:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 8613,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "17212:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$6761",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 8614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6730,
                        "src": "17212:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 8616,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17212:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8618,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12964,
                          "src": "17243:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 8617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17235:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 8619,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17235:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17212:36:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8629,
                  "nodeType": "IfStatement",
                  "src": "17208:101:29",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8624,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7291,
                          "src": "17282:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 8625,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8608,
                          "src": "17292:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 8626,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8610,
                          "src": "17299:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 8621,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "17262:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$6761",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 8623,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6695,
                        "src": "17262:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                        }
                      },
                      "id": 8627,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17262:47:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8628,
                    "nodeType": "ExpressionStatement",
                    "src": "17262:47:29"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 8631,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8608,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8631,
                  "src": "17155:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8607,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17155:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8610,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 8631,
                  "src": "17170:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8609,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17170:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17154:34:29"
            },
            "returnParameters": {
              "id": 8612,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17198:0:29"
            },
            "scope": 8755,
            "src": "17127:189:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8648,
              "nodeType": "Block",
              "src": "17584:83:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8642,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8640,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8633,
                      "src": "17598:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8641,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8635,
                      "src": "17602:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17598:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8645,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8635,
                      "src": "17659:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8639,
                    "id": 8646,
                    "nodeType": "Return",
                    "src": "17652:8:29"
                  },
                  "id": 8647,
                  "nodeType": "IfStatement",
                  "src": "17594:66:29",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8643,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8633,
                      "src": "17624:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8639,
                    "id": 8644,
                    "nodeType": "Return",
                    "src": "17617:8:29"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 8649,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8633,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 8649,
                  "src": "17539:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8632,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17539:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8635,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 8649,
                  "src": "17547:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8634,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17547:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17538:16:29"
            },
            "returnParameters": {
              "id": 8639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8638,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8649,
                  "src": "17578:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8637,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17578:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17577:6:29"
            },
            "scope": 8755,
            "src": "17526:141:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8666,
              "nodeType": "Block",
              "src": "17935:83:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8658,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8651,
                      "src": "17949:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8659,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8653,
                      "src": "17953:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17949:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8663,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8653,
                      "src": "18010:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8657,
                    "id": 8664,
                    "nodeType": "Return",
                    "src": "18003:8:29"
                  },
                  "id": 8665,
                  "nodeType": "IfStatement",
                  "src": "17945:66:29",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8661,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8651,
                      "src": "17975:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8657,
                    "id": 8662,
                    "nodeType": "Return",
                    "src": "17968:8:29"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 8667,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8651,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 8667,
                  "src": "17890:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8650,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17890:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8653,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 8667,
                  "src": "17898:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8652,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17898:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17889:16:29"
            },
            "returnParameters": {
              "id": 8657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8656,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8667,
                  "src": "17929:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8655,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17929:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17928:6:29"
            },
            "scope": 8755,
            "src": "17877:141:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8753,
              "nodeType": "Block",
              "src": "18256:779:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8674,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8669,
                    "src": "18266:1:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 8675,
                  "nodeType": "ExpressionStatement",
                  "src": "18266:1:29"
                },
                {
                  "assignments": [
                    8677
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8677,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 8753,
                      "src": "18384:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8676,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18384:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8678,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18384:8:29"
                },
                {
                  "assignments": [
                    8680
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8680,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 8753,
                      "src": "18402:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8679,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18402:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8681,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18402:8:29"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 8677,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18443:3:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 8680,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18472:3:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 8669,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18454:1:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 8669,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18489:1:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 8677,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18493:3:29",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 8682,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "18420:87:29"
                },
                {
                  "assignments": [
                    8684
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8684,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 8753,
                      "src": "18516:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8683,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18516:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8686,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 8685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "18527:1:29",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18516:12:29"
                },
                {
                  "body": {
                    "id": 8749,
                    "nodeType": "Block",
                    "src": "18566:443:29",
                    "statements": [
                      {
                        "assignments": [
                          8696
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8696,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 8749,
                            "src": "18580:7:29",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 8695,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "18580:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 8697,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "18580:7:29"
                      },
                      {
                        "externalReferences": [
                          {
                            "b": {
                              "declaration": 8696,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18612:1:29",
                              "valueSize": 1
                            }
                          },
                          {
                            "ptr": {
                              "declaration": 8677,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18627:3:29",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 8698,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "18601:39:29"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 8701,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8699,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8696,
                            "src": "18657:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 8700,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18661:4:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "18657:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 8709,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 8707,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8696,
                              "src": "18718:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 8708,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18722:4:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "18718:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 8717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 8715,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8696,
                                "src": "18779:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 8716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18783:4:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "18779:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 8725,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 8723,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8696,
                                  "src": "18840:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 8724,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18844:4:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "18840:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 8733,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 8731,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8696,
                                    "src": "18901:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 8732,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18905:4:29",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "18901:8:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 8743,
                                  "nodeType": "Block",
                                  "src": "18958:41:29",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8741,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 8739,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8677,
                                          "src": "18976:3:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 8740,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18983:1:29",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "18976:8:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 8742,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18976:8:29"
                                    }
                                  ]
                                },
                                "id": 8744,
                                "nodeType": "IfStatement",
                                "src": "18897:102:29",
                                "trueBody": {
                                  "id": 8738,
                                  "nodeType": "Block",
                                  "src": "18911:41:29",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8736,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 8734,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8677,
                                          "src": "18929:3:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 8735,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18936:1:29",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "18929:8:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 8737,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18929:8:29"
                                    }
                                  ]
                                }
                              },
                              "id": 8745,
                              "nodeType": "IfStatement",
                              "src": "18836:163:29",
                              "trueBody": {
                                "id": 8730,
                                "nodeType": "Block",
                                "src": "18850:41:29",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8728,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 8726,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8677,
                                        "src": "18868:3:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 8727,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "18875:1:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "18868:8:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8729,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18868:8:29"
                                  }
                                ]
                              }
                            },
                            "id": 8746,
                            "nodeType": "IfStatement",
                            "src": "18775:224:29",
                            "trueBody": {
                              "id": 8722,
                              "nodeType": "Block",
                              "src": "18789:41:29",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8720,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 8718,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8677,
                                      "src": "18807:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 8719,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "18814:1:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "18807:8:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 8721,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18807:8:29"
                                }
                              ]
                            }
                          },
                          "id": 8747,
                          "nodeType": "IfStatement",
                          "src": "18714:285:29",
                          "trueBody": {
                            "id": 8714,
                            "nodeType": "Block",
                            "src": "18728:41:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8712,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 8710,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8677,
                                    "src": "18746:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 8711,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18753:1:29",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "18746:8:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 8713,
                                "nodeType": "ExpressionStatement",
                                "src": "18746:8:29"
                              }
                            ]
                          }
                        },
                        "id": 8748,
                        "nodeType": "IfStatement",
                        "src": "18653:346:29",
                        "trueBody": {
                          "id": 8706,
                          "nodeType": "Block",
                          "src": "18667:41:29",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 8704,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 8702,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8677,
                                  "src": "18685:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 8703,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18692:1:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "18685:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 8705,
                              "nodeType": "ExpressionStatement",
                              "src": "18685:8:29"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8689,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8677,
                      "src": "18548:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8690,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8680,
                      "src": "18554:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18548:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8750,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8687,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8684,
                      "src": "18543:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8688,
                    "nodeType": "ExpressionStatement",
                    "src": "18543:3:29"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "18559:5:29",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8692,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8684,
                        "src": "18559:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8694,
                    "nodeType": "ExpressionStatement",
                    "src": "18559:5:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "18538:471:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8751,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8684,
                    "src": "19025:3:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8673,
                  "id": 8752,
                  "nodeType": "Return",
                  "src": "19018:10:29"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 8754,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8669,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 8754,
                  "src": "18210:15:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 8668,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18210:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18209:17:29"
            },
            "returnParameters": {
              "id": 8673,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8672,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8754,
                  "src": "18250:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8671,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18250:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18249:6:29"
            },
            "scope": 8755,
            "src": "18194:841:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 8756,
        "src": "586:18452:29"
      }
    ],
    "src": "0:19039:29"
  },
  "legacyAST": {
    "absolutePath": "@ensdomains/ens/contracts/HashRegistrar.sol",
    "exportedSymbols": {
      "HashRegistrar": [
        8755
      ]
    },
    "id": 8756,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7282,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:29"
      },
      {
        "absolutePath": "@ensdomains/ens/contracts/ENS.sol",
        "file": "./ENS.sol",
        "id": 7283,
        "nodeType": "ImportDirective",
        "scope": 8756,
        "sourceUnit": 6762,
        "src": "388:19:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/ens/contracts/DeedImplementation.sol",
        "file": "./DeedImplementation.sol",
        "id": 7284,
        "nodeType": "ImportDirective",
        "scope": 8756,
        "sourceUnit": 6625,
        "src": "408:34:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@ensdomains/ens/contracts/Registrar.sol",
        "file": "./Registrar.sol",
        "id": 7285,
        "nodeType": "ImportDirective",
        "scope": 8756,
        "sourceUnit": 8921,
        "src": "443:25:29",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 7286,
              "name": "Registrar",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8920,
              "src": "612:9:29",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Registrar_$8920",
                "typeString": "contract Registrar"
              }
            },
            "id": 7287,
            "nodeType": "InheritanceSpecifier",
            "src": "612:9:29"
          }
        ],
        "contractDependencies": [
          6624,
          8920
        ],
        "contractKind": "contract",
        "documentation": "@title Registrar\n@dev The registrar handles the auction process for each subnode of the node it owns.",
        "fullyImplemented": true,
        "id": 8755,
        "linearizedBaseContracts": [
          8755,
          8920
        ],
        "name": "HashRegistrar",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 7289,
            "name": "ens",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "628:14:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ENS_$6761",
              "typeString": "contract ENS"
            },
            "typeName": {
              "contractScope": null,
              "id": 7288,
              "name": "ENS",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6761,
              "src": "628:3:29",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENS_$6761",
                "typeString": "contract ENS"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7291,
            "name": "rootNode",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "648:23:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 7290,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "648:7:29",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 7295,
            "name": "_entries",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "678:35:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
              "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
            },
            "typeName": {
              "id": 7294,
              "keyType": {
                "id": 7292,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "687:7:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "678:26:29",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                "typeString": "mapping(bytes32 => struct HashRegistrar.Entry)"
              },
              "valueType": {
                "contractScope": null,
                "id": 7293,
                "name": "Entry",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 7324,
                "src": "698:5:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                  "typeString": "struct HashRegistrar.Entry"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7301,
            "name": "sealedBids",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "719:64:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
              "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
            },
            "typeName": {
              "id": 7300,
              "keyType": {
                "id": 7296,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "728:7:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "719:46:29",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
              },
              "valueType": {
                "id": 7299,
                "keyType": {
                  "id": 7297,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "748:7:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "nodeType": "Mapping",
                "src": "739:25:29",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                  "typeString": "mapping(bytes32 => contract Deed)"
                },
                "valueType": {
                  "contractScope": null,
                  "id": 7298,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 6372,
                  "src": "759:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$6372",
                    "typeString": "contract Deed"
                  }
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 7304,
            "name": "totalAuctionLength",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "790:43:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 7302,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "790:6:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "35",
              "id": 7303,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "827:6:29",
              "subdenomination": "days",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_432000_by_1",
                "typeString": "int_const 432000"
              },
              "value": "5"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 7307,
            "name": "revealPeriod",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "839:39:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 7305,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "839:6:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "3438",
              "id": 7306,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "870:8:29",
              "subdenomination": "hours",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_172800_by_1",
                "typeString": "int_const 172800"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 7310,
            "name": "launchLength",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "884:45:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 7308,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "884:6:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "38",
              "id": 7309,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "922:7:29",
              "subdenomination": "weeks",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4838400_by_1",
                "typeString": "int_const 4838400"
              },
              "value": "8"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 7313,
            "name": "minPrice",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "936:35:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 7311,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "936:4:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "302e3031",
              "id": 7312,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "961:10:29",
              "subdenomination": "ether",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_10000000000000000_by_1",
                "typeString": "int_const 10000000000000000"
              },
              "value": "0.01"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 7315,
            "name": "registryStarted",
            "nodeType": "VariableDeclaration",
            "scope": 8755,
            "src": "977:27:29",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 7314,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "977:4:29",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "canonicalName": "HashRegistrar.Entry",
            "id": 7324,
            "members": [
              {
                "constant": false,
                "id": 7317,
                "name": "deed",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1034:9:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_Deed_$6372",
                  "typeString": "contract Deed"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7316,
                  "name": "Deed",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 6372,
                  "src": "1034:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$6372",
                    "typeString": "contract Deed"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7319,
                "name": "registrationDate",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1053:21:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7318,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1053:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7321,
                "name": "value",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1084:10:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7320,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1084:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7323,
                "name": "highestBid",
                "nodeType": "VariableDeclaration",
                "scope": 7324,
                "src": "1104:15:29",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7322,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "1104:4:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Entry",
            "nodeType": "StructDefinition",
            "scope": 8755,
            "src": "1011:115:29",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7339,
              "nodeType": "Block",
              "src": "1177:59:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 7335,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7332,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7326,
                              "src": "1201:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 7331,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "1195:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 7333,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1195:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 7334,
                          "name": "_state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7328,
                          "src": "1211:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "1195:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7330,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "1187:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7336,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1187:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7337,
                  "nodeType": "ExpressionStatement",
                  "src": "1187:31:29"
                },
                {
                  "id": 7338,
                  "nodeType": "PlaceholderStatement",
                  "src": "1228:1:29"
                }
              ]
            },
            "documentation": null,
            "id": 7340,
            "name": "inState",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 7329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7326,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7340,
                  "src": "1149:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7325,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1149:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7328,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 7340,
                  "src": "1164:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$8765",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7327,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8765,
                    "src": "1164:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1148:28:29"
            },
            "src": "1132:104:29",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7364,
              "nodeType": "Block",
              "src": "1276:109:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          },
                          "id": 7350,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7346,
                                "name": "_hash",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7342,
                                "src": "1300:5:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 7345,
                              "name": "state",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8280,
                              "src": "1294:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                                "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                              }
                            },
                            "id": 7347,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1294:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$8765",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7348,
                              "name": "Mode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8765,
                              "src": "1310:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                "typeString": "type(enum Registrar.Mode)"
                              }
                            },
                            "id": 7349,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "Owned",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1310:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_Mode_$8765",
                              "typeString": "enum Registrar.Mode"
                            }
                          },
                          "src": "1294:26:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7359,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7351,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12908,
                              "src": "1324:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 7352,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1324:10:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 7353,
                                    "name": "_entries",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7295,
                                    "src": "1338:8:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                                      "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                                    }
                                  },
                                  "id": 7355,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 7354,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7342,
                                    "src": "1347:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1338:15:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage",
                                    "typeString": "struct HashRegistrar.Entry storage ref"
                                  }
                                },
                                "id": 7356,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "deed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7317,
                                "src": "1338:20:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 7357,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6356,
                              "src": "1338:26:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                "typeString": "function () view external returns (address)"
                              }
                            },
                            "id": 7358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1338:28:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1324:42:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1294:72:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7344,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "1286:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7361,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1286:81:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7362,
                  "nodeType": "ExpressionStatement",
                  "src": "1286:81:29"
                },
                {
                  "id": 7363,
                  "nodeType": "PlaceholderStatement",
                  "src": "1377:1:29"
                }
              ]
            },
            "documentation": null,
            "id": 7365,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 7343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7342,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7365,
                  "src": "1261:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7341,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1261:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1260:15:29"
            },
            "src": "1242:143:29",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7394,
              "nodeType": "Block",
              "src": "1415:146:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 7381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7368,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12910,
                              "src": "1433:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 7369,
                              "name": "registryStarted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7315,
                              "src": "1440:15:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1433:22:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7380,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7371,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12910,
                              "src": "1459:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<=",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7379,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 7372,
                                "name": "registryStarted",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7315,
                                "src": "1466:15:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                },
                                "id": 7378,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      },
                                      "id": 7375,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "333635",
                                        "id": 7373,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1485:3:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_365_by_1",
                                          "typeString": "int_const 365"
                                        },
                                        "value": "365"
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "*",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 7374,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1491:1:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "1485:7:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1460_by_1",
                                        "typeString": "int_const 1460"
                                      }
                                    }
                                  ],
                                  "id": 7376,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "1484:9:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1460_by_1",
                                    "typeString": "int_const 1460"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 7377,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1496:6:29",
                                  "subdenomination": "days",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_86400_by_1",
                                    "typeString": "int_const 86400"
                                  },
                                  "value": "1"
                                },
                                "src": "1484:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_126144000_by_1",
                                  "typeString": "int_const 126144000"
                                }
                              },
                              "src": "1466:36:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1459:43:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "1433:69:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7389,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7384,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7291,
                                "src": "1516:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7382,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7289,
                                "src": "1506:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$6761",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 7383,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6730,
                              "src": "1506:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 7385,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1506:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7387,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12964,
                                "src": "1537:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 7386,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1529:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7388,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1529:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1506:36:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1433:109:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7367,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "1425:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7391,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1425:118:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7392,
                  "nodeType": "ExpressionStatement",
                  "src": "1425:118:29"
                },
                {
                  "id": 7393,
                  "nodeType": "PlaceholderStatement",
                  "src": "1553:1:29"
                }
              ]
            },
            "documentation": null,
            "id": 7395,
            "name": "registryOpen",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 7366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1412:2:29"
            },
            "src": "1391:170:29",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7421,
              "nodeType": "Block",
              "src": "1844:118:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7406,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7404,
                      "name": "ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7289,
                      "src": "1854:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$6761",
                        "typeString": "contract ENS"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 7405,
                      "name": "_ens",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7397,
                      "src": "1860:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ENS_$6761",
                        "typeString": "contract ENS"
                      }
                    },
                    "src": "1854:10:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$6761",
                      "typeString": "contract ENS"
                    }
                  },
                  "id": 7407,
                  "nodeType": "ExpressionStatement",
                  "src": "1854:10:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7410,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7408,
                      "name": "rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7291,
                      "src": "1874:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 7409,
                      "name": "_rootNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7399,
                      "src": "1885:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "1874:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7411,
                  "nodeType": "ExpressionStatement",
                  "src": "1874:20:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7412,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7315,
                      "src": "1904:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7413,
                          "name": "_startDate",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7401,
                          "src": "1922:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7414,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1935:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1922:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "argumentTypes": null,
                        "id": 7417,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12910,
                        "src": "1952:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "id": 7418,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "1922:33:29",
                      "trueExpression": {
                        "argumentTypes": null,
                        "id": 7416,
                        "name": "_startDate",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7401,
                        "src": "1939:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1904:51:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7420,
                  "nodeType": "ExpressionStatement",
                  "src": "1904:51:29"
                }
              ]
            },
            "documentation": "@dev Constructs a new Registrar, with the provided address as the owner of the root node.\n     * @param _ens The address of the ENS\n@param _rootNode The hash of the rootnode.",
            "id": 7422,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7402,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7397,
                  "name": "_ens",
                  "nodeType": "VariableDeclaration",
                  "scope": 7422,
                  "src": "1791:8:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ENS_$6761",
                    "typeString": "contract ENS"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7396,
                    "name": "ENS",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6761,
                    "src": "1791:3:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ENS_$6761",
                      "typeString": "contract ENS"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7399,
                  "name": "_rootNode",
                  "nodeType": "VariableDeclaration",
                  "scope": 7422,
                  "src": "1801:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1801:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7401,
                  "name": "_startDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 7422,
                  "src": "1820:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7400,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1820:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1790:46:29"
            },
            "returnParameters": {
              "id": 7403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1844:0:29"
            },
            "scope": 8755,
            "src": "1779:183:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 7431,
              "nodeType": "Block",
              "src": "2140:37:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7428,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7424,
                        "src": "2164:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7427,
                      "name": "_startAuction",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8456,
                      "src": "2150:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7429,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2150:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7430,
                  "nodeType": "ExpressionStatement",
                  "src": "2150:20:29"
                }
              ]
            },
            "documentation": "@dev Start an auction for an available hash\n     * @param _hash The hash to start an auction on",
            "id": 7432,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7424,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7432,
                  "src": "2116:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7423,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2116:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2115:15:29"
            },
            "returnParameters": {
              "id": 7426,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2140:0:29"
            },
            "scope": 8755,
            "src": "2094:83:29",
            "stateMutability": "nonpayable",
            "superFunction": 8827,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7442,
              "nodeType": "Block",
              "src": "2831:40:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7439,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7435,
                        "src": "2856:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 7438,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8482,
                      "src": "2841:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 7440,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2841:23:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7441,
                  "nodeType": "ExpressionStatement",
                  "src": "2841:23:29"
                }
              ]
            },
            "documentation": "@dev Start multiple auctions for better anonymity\n     * Anyone can start an auction by sending an array of hashes that they want to bid for.\nArrays are sent so that someone can open up an auction for X dummy hashes when they\nare only really interested in bidding for one. This will increase the cost for an\nattacker to simply bid blindly on all new auctions. Dummy auctions that are\nopen but not bid on are closed after a week.\n     * @param _hashes An array of hashes, at least one of which you presumably want to bid on",
            "id": 7443,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7435,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 7443,
                  "src": "2794:26:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7433,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "2794:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 7434,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2794:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2793:28:29"
            },
            "returnParameters": {
              "id": 7437,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2831:0:29"
            },
            "scope": 8755,
            "src": "2771:100:29",
            "stateMutability": "nonpayable",
            "superFunction": 8833,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7452,
              "nodeType": "Block",
              "src": "3779:35:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7449,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7445,
                        "src": "3797:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7448,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8540,
                      "src": "3789:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3789:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7451,
                  "nodeType": "ExpressionStatement",
                  "src": "3789:18:29"
                }
              ]
            },
            "documentation": "@dev Submit a new sealed bid on a desired hash in a blind auction\n     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash\ncontains information about the bid, including the bidded hash, the bid amount, and a random\nsalt. Bids are not tied to any one auction until they are revealed. The value of the bid\nitself can be masqueraded by sending more than the value of your actual bid. This is\nfollowed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable.\nSince this is an auction, it is expected that most public hashes, like known domains and common dictionary\nwords, will have multiple bidders pushing the price up.\n     * @param sealedBid A sealedBid, created by the shaBid function",
            "id": 7453,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7446,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7445,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 7453,
                  "src": "3743:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7444,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3742:19:29"
            },
            "returnParameters": {
              "id": 7447,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3779:0:29"
            },
            "scope": 8755,
            "src": "3727:87:29",
            "stateMutability": "payable",
            "superFunction": 8838,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7469,
              "nodeType": "Block",
              "src": "4248:67:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7462,
                        "name": "hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7456,
                        "src": "4273:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 7461,
                      "name": "_startAuctions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8482,
                      "src": "4258:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32[] memory)"
                      }
                    },
                    "id": 7463,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4258:22:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7464,
                  "nodeType": "ExpressionStatement",
                  "src": "4258:22:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7466,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7458,
                        "src": "4298:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7465,
                      "name": "_newBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8540,
                      "src": "4290:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4290:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7468,
                  "nodeType": "ExpressionStatement",
                  "src": "4290:18:29"
                }
              ]
            },
            "documentation": "@dev Start a set of auctions and bid on one of them\n     * This method functions identically to calling `startAuctions` followed by `newBid`,\nbut all in one transaction.\n     * @param hashes A list of hashes to start auctions on.\n@param sealedBid A sealed bid for one of the auctions.",
            "id": 7470,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "startAuctionsAndBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7456,
                  "name": "hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 7470,
                  "src": "4185:25:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7454,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "4185:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 7455,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4185:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7458,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 7470,
                  "src": "4212:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7457,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4212:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4184:46:29"
            },
            "returnParameters": {
              "id": 7460,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4248:0:29"
            },
            "scope": 8755,
            "src": "4156:159:29",
            "stateMutability": "payable",
            "superFunction": 8846,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7701,
              "nodeType": "Block",
              "src": "4618:1904:29",
              "statements": [
                {
                  "assignments": [
                    7480
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7480,
                      "name": "seal",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4628:12:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7479,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "4628:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7488,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7482,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7472,
                        "src": "4650:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7483,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "4657:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7484,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4657:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7485,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7474,
                        "src": "4669:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7486,
                        "name": "_salt",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7476,
                        "src": "4677:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7481,
                      "name": "shaBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8343,
                      "src": "4643:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,address,uint256,bytes32) pure returns (bytes32)"
                      }
                    },
                    "id": 7487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4643:40:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4628:55:29"
                },
                {
                  "assignments": [
                    7490
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7490,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4693:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7489,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "4693:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7497,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7491,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7301,
                        "src": "4704:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 7494,
                      "indexExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7492,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "4715:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7493,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4715:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4704:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 7496,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7495,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7480,
                      "src": "4727:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4704:28:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4693:39:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 7505,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7500,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7490,
                              "src": "4758:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 7499,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4750:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7501,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4750:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 7503,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4774:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7502,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4766:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4766:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "4750:28:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7498,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "4742:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7506,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4742:37:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7507,
                  "nodeType": "ExpressionStatement",
                  "src": "4742:37:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7519,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 7508,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7301,
                          "src": "4790:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 7512,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7509,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "4801:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 7510,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "4801:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4790:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 7513,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7511,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7480,
                        "src": "4813:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "4790:28:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 7516,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "4834:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7515,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "4826:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7517,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4826:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 7514,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "4821:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 7518,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4821:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "4790:49:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 7520,
                  "nodeType": "ExpressionStatement",
                  "src": "4790:49:29"
                },
                {
                  "assignments": [
                    7522
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7522,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4849:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7521,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "4849:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7526,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7523,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "4867:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7525,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7524,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7472,
                      "src": "4876:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4867:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4849:33:29"
                },
                {
                  "assignments": [
                    7528
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7528,
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4892:10:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7527,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4892:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7535,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7530,
                        "name": "_value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7474,
                        "src": "4909:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7531,
                            "name": "bid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7490,
                            "src": "4917:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 7532,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6366,
                          "src": "4917:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 7533,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4917:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7529,
                      "name": "min",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8667,
                      "src": "4905:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 7534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4905:24:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4892:37:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7539,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7528,
                        "src": "4954:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 7540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4961:4:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7536,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7490,
                        "src": "4939:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7538,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6343,
                      "src": "4939:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 7541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4939:27:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7542,
                  "nodeType": "ExpressionStatement",
                  "src": "4939:27:29"
                },
                {
                  "assignments": [
                    7544
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7544,
                      "name": "auctionState",
                      "nodeType": "VariableDeclaration",
                      "scope": 7701,
                      "src": "4977:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7543,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8765,
                        "src": "4977:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7548,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7546,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7472,
                        "src": "5003:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7545,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8280,
                      "src": "4997:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 7547,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4997:12:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4977:32:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 7552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7549,
                      "name": "auctionState",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7544,
                      "src": "5023:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7550,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8765,
                        "src": "5039:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 7551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Owned",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "5039:10:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "5023:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      },
                      "id": 7571,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 7568,
                        "name": "auctionState",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7544,
                        "src": "5226:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7569,
                          "name": "Mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8765,
                          "src": "5242:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                            "typeString": "type(enum Registrar.Mode)"
                          }
                        },
                        "id": 7570,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "Reveal",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "5242:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "src": "5226:27:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7587,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7578,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7576,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7528,
                            "src": "5327:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 7577,
                            "name": "minPrice",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7313,
                            "src": "5335:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5327:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7579,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7490,
                                "src": "5347:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 7580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "creationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6371,
                              "src": "5347:16:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 7581,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5347:18:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7585,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7582,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7522,
                                "src": "5368:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7583,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7319,
                              "src": "5368:18:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 7584,
                              "name": "revealPeriod",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7307,
                              "src": "5389:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "5368:33:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5347:54:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5327:74:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7606,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7603,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7528,
                            "src": "5568:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7604,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7522,
                              "src": "5576:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7605,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "highestBid",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7323,
                            "src": "5576:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5568:20:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7659,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7656,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7528,
                              "src": "6166:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7657,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7522,
                                "src": "6174:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7658,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "value",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7321,
                              "src": "6174:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6166:15:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 7695,
                            "nodeType": "Block",
                            "src": "6372:144:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 7684,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6442:3:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7681,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7490,
                                      "src": "6428:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 7683,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6348,
                                    "src": "6428:13:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 7685,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6428:18:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7686,
                                "nodeType": "ExpressionStatement",
                                "src": "6428:18:29"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 7688,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7472,
                                      "src": "6477:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7689,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12908,
                                        "src": "6484:3:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 7690,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6484:10:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 7691,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7528,
                                      "src": "6496:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "34",
                                      "id": 7692,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6503:1:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      },
                                      "value": "4"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_4_by_1",
                                        "typeString": "int_const 4"
                                      }
                                    ],
                                    "id": 7687,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8789,
                                    "src": "6465:11:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 7693,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6465:40:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7694,
                                "nodeType": "EmitStatement",
                                "src": "6460:45:29"
                              }
                            ]
                          },
                          "id": 7696,
                          "nodeType": "IfStatement",
                          "src": "6162:354:29",
                          "trueBody": {
                            "id": 7680,
                            "nodeType": "Block",
                            "src": "6183:183:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7664,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7660,
                                      "name": "h",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7522,
                                      "src": "6249:1:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                        "typeString": "struct HashRegistrar.Entry storage pointer"
                                      }
                                    },
                                    "id": 7662,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": true,
                                    "memberName": "value",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7321,
                                    "src": "6249:7:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "id": 7663,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7528,
                                    "src": "6259:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "6249:15:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 7665,
                                "nodeType": "ExpressionStatement",
                                "src": "6249:15:29"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "393935",
                                      "id": 7669,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6292:3:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      },
                                      "value": "995"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_995_by_1",
                                        "typeString": "int_const 995"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7666,
                                      "name": "bid",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7490,
                                      "src": "6278:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "id": 7668,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "closeDeed",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 6348,
                                    "src": "6278:13:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                      "typeString": "function (uint256) external"
                                    }
                                  },
                                  "id": 7670,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6278:18:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7671,
                                "nodeType": "ExpressionStatement",
                                "src": "6278:18:29"
                              },
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 7673,
                                      "name": "_hash",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7472,
                                      "src": "6327:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7674,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 12908,
                                        "src": "6334:3:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 7675,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "6334:10:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 7676,
                                      "name": "value",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7528,
                                      "src": "6346:5:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 7677,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "6353:1:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      },
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      }
                                    ],
                                    "id": 7672,
                                    "name": "BidRevealed",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8789,
                                    "src": "6315:11:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                      "typeString": "function (bytes32,address,uint256,uint8)"
                                    }
                                  },
                                  "id": 7678,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "6315:40:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 7679,
                                "nodeType": "EmitStatement",
                                "src": "6310:45:29"
                              }
                            ]
                          }
                        },
                        "id": 7697,
                        "nodeType": "IfStatement",
                        "src": "5564:952:29",
                        "trueBody": {
                          "id": 7655,
                          "nodeType": "Block",
                          "src": "5590:566:29",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 7614,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7608,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7522,
                                        "src": "5692:1:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 7609,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7317,
                                      "src": "5692:6:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    ],
                                    "id": 7607,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5684:7:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 7610,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5684:15:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "!=",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "hexValue": "307830",
                                      "id": 7612,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5711:3:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0x0"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      }
                                    ],
                                    "id": 7611,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5703:7:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_address_$",
                                      "typeString": "type(address)"
                                    },
                                    "typeName": "address"
                                  },
                                  "id": 7613,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5703:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5684:31:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 7627,
                              "nodeType": "IfStatement",
                              "src": "5680:145:29",
                              "trueBody": {
                                "id": 7626,
                                "nodeType": "Block",
                                "src": "5717:108:29",
                                "statements": [
                                  {
                                    "assignments": [
                                      7616
                                    ],
                                    "declarations": [
                                      {
                                        "constant": false,
                                        "id": 7616,
                                        "name": "previousWinner",
                                        "nodeType": "VariableDeclaration",
                                        "scope": 7626,
                                        "src": "5735:19:29",
                                        "stateVariable": false,
                                        "storageLocation": "default",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Deed_$6372",
                                          "typeString": "contract Deed"
                                        },
                                        "typeName": {
                                          "contractScope": null,
                                          "id": 7615,
                                          "name": "Deed",
                                          "nodeType": "UserDefinedTypeName",
                                          "referencedDeclaration": 6372,
                                          "src": "5735:4:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$6372",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "value": null,
                                        "visibility": "internal"
                                      }
                                    ],
                                    "id": 7619,
                                    "initialValue": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 7617,
                                        "name": "h",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7522,
                                        "src": "5757:1:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                          "typeString": "struct HashRegistrar.Entry storage pointer"
                                        }
                                      },
                                      "id": 7618,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "deed",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7317,
                                      "src": "5757:6:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_Deed_$6372",
                                        "typeString": "contract Deed"
                                      }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5735:28:29"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "hexValue": "393935",
                                          "id": 7623,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "5806:3:29",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          },
                                          "value": "995"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_rational_995_by_1",
                                            "typeString": "int_const 995"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 7620,
                                          "name": "previousWinner",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7616,
                                          "src": "5781:14:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_Deed_$6372",
                                            "typeString": "contract Deed"
                                          }
                                        },
                                        "id": 7622,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "closeDeed",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 6348,
                                        "src": "5781:24:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                          "typeString": "function (uint256) external"
                                        }
                                      },
                                      "id": 7624,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "5781:29:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 7625,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5781:29:29"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 7633,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7628,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "5962:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7630,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "value",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7321,
                                  "src": "5962:7:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7631,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "5972:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7632,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7323,
                                  "src": "5972:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5962:22:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 7634,
                              "nodeType": "ExpressionStatement",
                              "src": "5962:22:29"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 7639,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7635,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "6040:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7637,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "highestBid",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7323,
                                  "src": "6040:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 7638,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7528,
                                  "src": "6055:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "6040:20:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 7640,
                              "nodeType": "ExpressionStatement",
                              "src": "6040:20:29"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 7645,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7641,
                                    "name": "h",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7522,
                                    "src": "6074:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                      "typeString": "struct HashRegistrar.Entry storage pointer"
                                    }
                                  },
                                  "id": 7643,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "memberName": "deed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7317,
                                  "src": "6074:6:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$6372",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "id": 7644,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7490,
                                  "src": "6083:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$6372",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "src": "6074:12:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              },
                              "id": 7646,
                              "nodeType": "ExpressionStatement",
                              "src": "6074:12:29"
                            },
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 7648,
                                    "name": "_hash",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7472,
                                    "src": "6117:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7649,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 12908,
                                      "src": "6124:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 7650,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": null,
                                    "src": "6124:10:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 7651,
                                    "name": "value",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7528,
                                    "src": "6136:5:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 7652,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6143:1:29",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    }
                                  ],
                                  "id": 7647,
                                  "name": "BidRevealed",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8789,
                                  "src": "6105:11:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                    "typeString": "function (bytes32,address,uint256,uint8)"
                                  }
                                },
                                "id": 7653,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6105:40:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 7654,
                              "nodeType": "EmitStatement",
                              "src": "6100:45:29"
                            }
                          ]
                        }
                      },
                      "id": 7698,
                      "nodeType": "IfStatement",
                      "src": "5323:1193:29",
                      "trueBody": {
                        "id": 7602,
                        "nodeType": "Block",
                        "src": "5403:155:29",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "393935",
                                  "id": 7591,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5484:3:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  },
                                  "value": "995"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_995_by_1",
                                    "typeString": "int_const 995"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7588,
                                  "name": "bid",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7490,
                                  "src": "5470:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_Deed_$6372",
                                    "typeString": "contract Deed"
                                  }
                                },
                                "id": 7590,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "closeDeed",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6348,
                                "src": "5470:13:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                                  "typeString": "function (uint256) external"
                                }
                              },
                              "id": 7592,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5470:18:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 7593,
                            "nodeType": "ExpressionStatement",
                            "src": "5470:18:29"
                          },
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 7595,
                                  "name": "_hash",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7472,
                                  "src": "5519:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7596,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12908,
                                    "src": "5526:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 7597,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5526:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 7598,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7528,
                                  "src": "5538:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 7599,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5545:1:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 7594,
                                "name": "BidRevealed",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8789,
                                "src": "5507:11:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                                  "typeString": "function (bytes32,address,uint256,uint8)"
                                }
                              },
                              "id": 7600,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5507:40:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 7601,
                            "nodeType": "EmitStatement",
                            "src": "5502:45:29"
                          }
                        ]
                      }
                    },
                    "id": 7699,
                    "nodeType": "IfStatement",
                    "src": "5222:1294:29",
                    "trueBody": {
                      "id": 7575,
                      "nodeType": "Block",
                      "src": "5255:62:29",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 7572,
                              "name": "revert",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                12913,
                                12914
                              ],
                              "referencedDeclaration": 12913,
                              "src": "5298:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_revert_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 7573,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5298:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 7574,
                          "nodeType": "ExpressionStatement",
                          "src": "5298:8:29"
                        }
                      ]
                    }
                  },
                  "id": 7700,
                  "nodeType": "IfStatement",
                  "src": "5019:1497:29",
                  "trueBody": {
                    "id": 7567,
                    "nodeType": "Block",
                    "src": "5051:165:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 7556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5144:1:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7553,
                              "name": "bid",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7490,
                              "src": "5130:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 7555,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6348,
                            "src": "5130:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 7557,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5130:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7558,
                        "nodeType": "ExpressionStatement",
                        "src": "5130:16:29"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7560,
                              "name": "_hash",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7472,
                              "src": "5177:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7561,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12908,
                                "src": "5184:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 7562,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "5184:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 7563,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7528,
                              "src": "5196:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 7564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5203:1:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 7559,
                            "name": "BidRevealed",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8789,
                            "src": "5165:11:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                              "typeString": "function (bytes32,address,uint256,uint8)"
                            }
                          },
                          "id": 7565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5165:40:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7566,
                        "nodeType": "EmitStatement",
                        "src": "5160:45:29"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": "@dev Submit the properties of a bid to reveal them\n     * @param _hash The node in the sealedBid\n@param _value The bid amount in the sealedBid\n@param _salt The sale in the sealedBid",
            "id": 7702,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unsealBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7477,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7472,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7702,
                  "src": "4566:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4566:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7474,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7702,
                  "src": "4581:11:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7473,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4581:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7476,
                  "name": "_salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 7702,
                  "src": "4594:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7475,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4594:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4565:43:29"
            },
            "returnParameters": {
              "id": 7478,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4618:0:29"
            },
            "scope": 8755,
            "src": "4547:1975:29",
            "stateMutability": "nonpayable",
            "superFunction": 8855,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7767,
              "nodeType": "Block",
              "src": "6695:786:29",
              "statements": [
                {
                  "assignments": [
                    7710
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7710,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 7767,
                      "src": "6705:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7709,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "6705:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7716,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 7711,
                        "name": "sealedBids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7301,
                        "src": "6716:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                          "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                        }
                      },
                      "id": 7713,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7712,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7704,
                        "src": "6727:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6716:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                        "typeString": "mapping(bytes32 => contract Deed)"
                      }
                    },
                    "id": 7715,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7714,
                      "name": "seal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7706,
                      "src": "6735:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6716:24:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6705:35:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7734,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7724,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7719,
                                "name": "bid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7710,
                                "src": "7176:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Deed_$6372",
                                  "typeString": "contract Deed"
                                }
                              ],
                              "id": 7718,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7168:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7720,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7168:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "307830",
                                "id": 7722,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7192:3:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0x0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 7721,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7184:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7723,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7184:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "7168:28:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7733,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7725,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12910,
                            "src": "7200:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7732,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7730,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7726,
                                    "name": "bid",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7710,
                                    "src": "7207:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Deed_$6372",
                                      "typeString": "contract Deed"
                                    }
                                  },
                                  "id": 7727,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "creationDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 6371,
                                  "src": "7207:16:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                    "typeString": "function () view external returns (uint256)"
                                  }
                                },
                                "id": 7728,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7207:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 7729,
                                "name": "totalAuctionLength",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7304,
                                "src": "7228:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "7207:39:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "32",
                              "id": 7731,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7249:7:29",
                              "subdenomination": "weeks",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1209600_by_1",
                                "typeString": "int_const 1209600"
                              },
                              "value": "2"
                            },
                            "src": "7207:49:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7200:56:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "7168:88:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7717,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "7160:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7160:97:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7736,
                  "nodeType": "ExpressionStatement",
                  "src": "7160:97:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7740,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "7347:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 7741,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "7347:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7737,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7710,
                        "src": "7334:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6331,
                      "src": "7334:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 7742,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7334:24:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7743,
                  "nodeType": "ExpressionStatement",
                  "src": "7334:24:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 7747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7382:1:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7744,
                        "name": "bid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7710,
                        "src": "7368:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6348,
                      "src": "7368:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 7748,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7368:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7749,
                  "nodeType": "ExpressionStatement",
                  "src": "7368:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 7750,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7301,
                          "src": "7394:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 7753,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 7751,
                          "name": "bidder",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7704,
                          "src": "7405:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7394:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 7754,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 7752,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7706,
                        "src": "7413:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "7394:24:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7756,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7426:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7755,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "7421:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 7757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7421:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "7394:34:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 7759,
                  "nodeType": "ExpressionStatement",
                  "src": "7394:34:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7761,
                        "name": "seal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7706,
                        "src": "7455:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7762,
                        "name": "bidder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7704,
                        "src": "7461:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 7763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7469:1:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "35",
                        "id": 7764,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7472:1:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        },
                        "value": "5"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        {
                          "typeIdentifier": "t_rational_5_by_1",
                          "typeString": "int_const 5"
                        }
                      ],
                      "id": 7760,
                      "name": "BidRevealed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8789,
                      "src": "7443:11:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint8_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint8)"
                      }
                    },
                    "id": 7765,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7443:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7766,
                  "nodeType": "EmitStatement",
                  "src": "7438:36:29"
                }
              ]
            },
            "documentation": "@dev Cancel a bid\n     * @param seal The value returned by the shaBid function",
            "id": 7768,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "cancelBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7704,
                  "name": "bidder",
                  "nodeType": "VariableDeclaration",
                  "scope": 7768,
                  "src": "6656:14:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7703,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6656:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7706,
                  "name": "seal",
                  "nodeType": "VariableDeclaration",
                  "scope": 7768,
                  "src": "6672:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6672:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6655:30:29"
            },
            "returnParameters": {
              "id": 7708,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6695:0:29"
            },
            "scope": 8755,
            "src": "6637:844:29",
            "stateMutability": "nonpayable",
            "superFunction": 8862,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7822,
              "nodeType": "Block",
              "src": "7707:356:29",
              "statements": [
                {
                  "assignments": [
                    7777
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7777,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7822,
                      "src": "7717:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7776,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "7717:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7781,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7778,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "7735:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7780,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7779,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7770,
                      "src": "7744:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "7735:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7717:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7782,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7777,
                        "src": "7849:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7784,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "7849:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7786,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7777,
                            "src": "7863:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 7787,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7321,
                          "src": "7863:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 7788,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7313,
                          "src": "7872:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7785,
                        "name": "max",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8649,
                        "src": "7859:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 7789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7859:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7849:32:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7791,
                  "nodeType": "ExpressionStatement",
                  "src": "7849:32:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7797,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "7909:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7798,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "7909:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "74727565",
                        "id": 7799,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7918:4:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "true"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7792,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "7891:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7795,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "7891:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7796,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6343,
                      "src": "7891:17:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (uint256,bool) external"
                      }
                    },
                    "id": 7800,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7891:32:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7801,
                  "nodeType": "ExpressionStatement",
                  "src": "7891:32:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7803,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7770,
                        "src": "7953:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7804,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7777,
                              "src": "7960:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7805,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7317,
                            "src": "7960:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 7806,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6356,
                          "src": "7960:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 7807,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7960:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 7802,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8631,
                      "src": "7934:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 7808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7934:41:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7809,
                  "nodeType": "ExpressionStatement",
                  "src": "7934:41:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7811,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7770,
                        "src": "8005:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7812,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7777,
                              "src": "8012:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7813,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7317,
                            "src": "8012:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          },
                          "id": 7814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "owner",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 6356,
                          "src": "8012:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 7815,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8012:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7816,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "8028:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7817,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "8028:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7818,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7777,
                          "src": "8037:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7819,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "8037:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7810,
                      "name": "HashRegistered",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8799,
                      "src": "7990:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256,uint256)"
                      }
                    },
                    "id": 7820,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7990:66:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7821,
                  "nodeType": "EmitStatement",
                  "src": "7985:71:29"
                }
              ]
            },
            "documentation": "@dev Finalize an auction after the registration date has passed\n     * @param _hash The hash of the name the auction is for",
            "id": 7823,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 7773,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7770,
                    "src": "7700:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 7774,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7772,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "7690:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "7690:16:29"
              }
            ],
            "name": "finalizeAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7770,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7823,
                  "src": "7666:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7769,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7666:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7665:15:29"
            },
            "returnParameters": {
              "id": 7775,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7707:0:29"
            },
            "scope": 8755,
            "src": "7641:422:29",
            "stateMutability": "nonpayable",
            "superFunction": 8867,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7860,
              "nodeType": "Block",
              "src": "8357:174:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        "id": 7838,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 7834,
                          "name": "newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7827,
                          "src": "8375:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 7836,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8395:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 7835,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8387:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 7837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8387:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "8375:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7833,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "8367:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8367:33:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7840,
                  "nodeType": "ExpressionStatement",
                  "src": "8367:33:29"
                },
                {
                  "assignments": [
                    7842
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7842,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7860,
                      "src": "8411:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7841,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "8411:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7846,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7843,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "8429:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7845,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7844,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7825,
                      "src": "8438:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8429:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8411:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7852,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7827,
                        "src": "8470:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7847,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7842,
                          "src": "8454:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7850,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "8454:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7851,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6331,
                      "src": "8454:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                        "typeString": "function (address payable) external"
                      }
                    },
                    "id": 7853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8454:25:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7854,
                  "nodeType": "ExpressionStatement",
                  "src": "8454:25:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7856,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7825,
                        "src": "8508:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 7857,
                        "name": "newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7827,
                        "src": "8515:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 7855,
                      "name": "trySetSubnodeOwner",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8631,
                      "src": "8489:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 7858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8489:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7859,
                  "nodeType": "ExpressionStatement",
                  "src": "8489:35:29"
                }
              ]
            },
            "documentation": "@dev The owner of a domain may transfer it to someone else at any time.\n     * @param _hash The node to transfer\n@param newOwner The address to transfer ownership to",
            "id": 7861,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 7830,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7825,
                    "src": "8350:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 7831,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7829,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "8340:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8340:16:29"
              }
            ],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7828,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7825,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7861,
                  "src": "8290:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8290:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7827,
                  "name": "newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 7861,
                  "src": "8305:24:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 7826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8305:15:29",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8289:41:29"
            },
            "returnParameters": {
              "id": 7832,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8357:0:29"
            },
            "scope": 8755,
            "src": "8272:259:29",
            "stateMutability": "nonpayable",
            "superFunction": 8874,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7934,
              "nodeType": "Block",
              "src": "8797:382:29",
              "statements": [
                {
                  "assignments": [
                    7870
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7870,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 7934,
                      "src": "8807:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7869,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "8807:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7874,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7871,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "8825:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7873,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7872,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7863,
                      "src": "8834:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "8825:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8807:33:29"
                },
                {
                  "assignments": [
                    7876
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7876,
                      "name": "deedContract",
                      "nodeType": "VariableDeclaration",
                      "scope": 7934,
                      "src": "8850:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7875,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "8850:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7879,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 7877,
                      "name": "h",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7870,
                      "src": "8870:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry storage pointer"
                      }
                    },
                    "id": 7878,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "deed",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7317,
                    "src": "8870:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8850:26:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7886,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7881,
                            "name": "now",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12910,
                            "src": "8895:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7885,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7882,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7870,
                                "src": "8902:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7883,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "registrationDate",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7319,
                              "src": "8902:18:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "333635",
                              "id": 7884,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8923:8:29",
                              "subdenomination": "days",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_31536000_by_1",
                                "typeString": "int_const 31536000"
                              },
                              "value": "365"
                            },
                            "src": "8902:29:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8895:36:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 7894,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7889,
                                "name": "rootNode",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7291,
                                "src": "8945:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7887,
                                "name": "ens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7289,
                                "src": "8935:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ENS_$6761",
                                  "typeString": "contract ENS"
                                }
                              },
                              "id": 7888,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "owner",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6730,
                              "src": "8935:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                                "typeString": "function (bytes32) view external returns (address)"
                              }
                            },
                            "id": 7890,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8935:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7892,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12964,
                                "src": "8966:4:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                  "typeString": "contract HashRegistrar"
                                }
                              ],
                              "id": 7891,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "8958:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 7893,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8958:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "8935:36:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "8895:76:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7880,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "8887:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8887:85:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7897,
                  "nodeType": "ExpressionStatement",
                  "src": "8887:85:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7898,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7870,
                        "src": "8983:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7900,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "8983:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7901,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8993:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "8983:11:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7903,
                  "nodeType": "ExpressionStatement",
                  "src": "8983:11:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7904,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7870,
                        "src": "9004:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7906,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "9004:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "9019:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "9004:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7909,
                  "nodeType": "ExpressionStatement",
                  "src": "9004:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7916,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7910,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7870,
                        "src": "9030:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 7912,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7317,
                      "src": "9030:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 7914,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9044:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7913,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "9039:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 7915,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9039:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "9030:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 7917,
                  "nodeType": "ExpressionStatement",
                  "src": "9030:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7919,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7863,
                        "src": "9077:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7918,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8397,
                      "src": "9057:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9057:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7921,
                  "nodeType": "ExpressionStatement",
                  "src": "9057:26:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "31303030",
                        "id": 7925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9116:4:29",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        },
                        "value": "1000"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1000_by_1",
                          "typeString": "int_const 1000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7922,
                        "name": "deedContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7876,
                        "src": "9093:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 7924,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeDeed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6348,
                      "src": "9093:22:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 7926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9093:28:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7927,
                  "nodeType": "ExpressionStatement",
                  "src": "9093:28:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7929,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7863,
                        "src": "9149:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7930,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7870,
                          "src": "9156:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 7931,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "9156:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7928,
                      "name": "HashReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8805,
                      "src": "9136:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 7932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9136:28:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7933,
                  "nodeType": "EmitStatement",
                  "src": "9131:33:29"
                }
              ]
            },
            "documentation": "@dev After some time, or if we're no longer the registrar, the owner can release\n     the name and get their ether back.\n     * @param _hash The node to release",
            "id": 7935,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 7866,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7863,
                    "src": "8790:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 7867,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7865,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "8780:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "8780:16:29"
              }
            ],
            "name": "releaseDeed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7864,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7863,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 7935,
                  "src": "8756:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7862,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8756:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8755:15:29"
            },
            "returnParameters": {
              "id": 7868,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8797:0:29"
            },
            "scope": 8755,
            "src": "8735:444:29",
            "stateMutability": "nonpayable",
            "superFunction": 8879,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8055,
              "nodeType": "Block",
              "src": "9704:675:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7955,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 7952,
                              "name": "unhashedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7937,
                              "src": "9729:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_calldata_ptr",
                                "typeString": "string calldata"
                              }
                            ],
                            "id": 7951,
                            "name": "strlen",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8754,
                            "src": "9722:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$",
                              "typeString": "function (string memory) pure returns (uint256)"
                            }
                          },
                          "id": 7953,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9722:20:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 7954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9746:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "src": "9722:25:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7950,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "9714:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9714:34:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7957,
                  "nodeType": "ExpressionStatement",
                  "src": "9714:34:29"
                },
                {
                  "assignments": [
                    7959
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7959,
                      "name": "hash",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "9758:12:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7958,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "9758:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7966,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7963,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7937,
                            "src": "9794:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7961,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12895,
                            "src": "9783:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7962,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9783:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7964,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9783:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7960,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12902,
                      "src": "9773:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7965,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9773:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9758:50:29"
                },
                {
                  "assignments": [
                    7968
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7968,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "9819:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 7967,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "9819:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7972,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 7969,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "9837:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 7971,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 7970,
                      "name": "hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7959,
                      "src": "9846:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "9837:14:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9819:32:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 7974,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7959,
                        "src": "9882:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7973,
                      "name": "_tryEraseSingleNode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8397,
                      "src": "9862:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 7975,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9862:25:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7976,
                  "nodeType": "ExpressionStatement",
                  "src": "9862:25:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 7984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7978,
                            "name": "h",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7968,
                            "src": "9910:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                              "typeString": "struct HashRegistrar.Entry storage pointer"
                            }
                          },
                          "id": 7979,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "deed",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7317,
                          "src": "9910:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Deed_$6372",
                            "typeString": "contract Deed"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_Deed_$6372",
                            "typeString": "contract Deed"
                          }
                        ],
                        "id": 7977,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9902:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 7980,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9902:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "307830",
                          "id": 7982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9929:3:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0x0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 7981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9921:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 7983,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9921:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "9902:31:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8025,
                  "nodeType": "IfStatement",
                  "src": "9898:321:29",
                  "trueBody": {
                    "id": 8024,
                    "nodeType": "Block",
                    "src": "9935:284:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7985,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7968,
                              "src": "10050:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 7987,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7321,
                            "src": "10050:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7989,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7968,
                                  "src": "10064:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 7990,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7321,
                                "src": "10064:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 7991,
                                "name": "minPrice",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7313,
                                "src": "10073:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7988,
                              "name": "max",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8649,
                              "src": "10060:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 7992,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10060:22:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10050:32:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7994,
                        "nodeType": "ExpressionStatement",
                        "src": "10050:32:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8003,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8000,
                                  "name": "h",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7968,
                                  "src": "10114:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 8001,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "value",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7321,
                                "src": "10114:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "/",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 8002,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10122:1:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "10114:9:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 8004,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10125:5:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 7995,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7968,
                                "src": "10096:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 7998,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7317,
                              "src": "10096:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 7999,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setBalance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6343,
                            "src": "10096:17:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_bool_$returns$__$",
                              "typeString": "function (uint256,bool) external"
                            }
                          },
                          "id": 8005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10096:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8006,
                        "nodeType": "ExpressionStatement",
                        "src": "10096:35:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8012,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 12908,
                                "src": "10161:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 8013,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "10161:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8007,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7968,
                                "src": "10145:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 8010,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7317,
                              "src": "10145:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 8011,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6331,
                            "src": "10145:15:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$returns$__$",
                              "typeString": "function (address payable) external"
                            }
                          },
                          "id": 8014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10145:27:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8015,
                        "nodeType": "ExpressionStatement",
                        "src": "10145:27:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31303030",
                              "id": 8021,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10203:4:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              },
                              "value": "1000"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1000_by_1",
                                "typeString": "int_const 1000"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8016,
                                "name": "h",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7968,
                                "src": "10186:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 8019,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "deed",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7317,
                              "src": "10186:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            },
                            "id": 8020,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "closeDeed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6348,
                            "src": "10186:16:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                              "typeString": "function (uint256) external"
                            }
                          },
                          "id": 8022,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10186:22:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8023,
                        "nodeType": "ExpressionStatement",
                        "src": "10186:22:29"
                      }
                    ]
                  }
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8027,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7959,
                        "src": "10250:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 8028,
                        "name": "unhashedName",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7937,
                        "src": "10256:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8029,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7968,
                          "src": "10270:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8030,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "10270:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8031,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7968,
                          "src": "10279:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8032,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "10279:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8026,
                      "name": "HashInvalidated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8815,
                      "src": "10234:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,string memory,uint256,uint256)"
                      }
                    },
                    "id": 8033,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10234:64:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8034,
                  "nodeType": "EmitStatement",
                  "src": "10229:69:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8039,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8035,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7968,
                        "src": "10309:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8037,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "10309:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8038,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10319:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10309:11:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8040,
                  "nodeType": "ExpressionStatement",
                  "src": "10309:11:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8041,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7968,
                        "src": "10330:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8043,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "10330:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8044,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10345:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10330:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8046,
                  "nodeType": "ExpressionStatement",
                  "src": "10330:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8047,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7968,
                        "src": "10356:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8049,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7317,
                      "src": "10356:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 8051,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10370:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 8050,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "10365:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 8052,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10365:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "10356:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8054,
                  "nodeType": "ExpressionStatement",
                  "src": "10356:16:29"
                }
              ]
            },
            "documentation": "@dev Submit a name 6 characters long or less. If it has been registered,\n     the submitter will earn 50% of the deed value. \n\n     * We are purposefully handicapping the simplified registrar as a way \nto force it into being restructured in a few years.\n     * @param unhashedName An invalid name to search for in the registry.",
            "id": 8056,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 7943,
                            "name": "unhashedName",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7937,
                            "src": "9672:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_calldata_ptr",
                              "typeString": "string calldata"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 7941,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12895,
                            "src": "9661:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 7942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "9661:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 7944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9661:24:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 7940,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12902,
                      "src": "9651:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 7945,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9651:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 7946,
                      "name": "Mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8765,
                      "src": "9688:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                        "typeString": "type(enum Registrar.Mode)"
                      }
                    },
                    "id": 7947,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Owned",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "9688:10:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  }
                ],
                "id": 7948,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 7939,
                  "name": "inState",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7340,
                  "src": "9643:7:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$_t_enum$_Mode_$8765_$",
                    "typeString": "modifier (bytes32,enum Registrar.Mode)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "9643:56:29"
              }
            ],
            "name": "invalidateName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7937,
                  "name": "unhashedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 8056,
                  "src": "9588:28:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7936,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "9588:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9587:30:29"
            },
            "returnParameters": {
              "id": 7949,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9704:0:29"
            },
            "scope": 8755,
            "src": "9564:815:29",
            "stateMutability": "nonpayable",
            "superFunction": 8884,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8092,
              "nodeType": "Block",
              "src": "11063:176:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8063,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8059,
                            "src": "11081:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 8064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11081:13:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 8065,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11098:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11081:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8062,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "11073:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8067,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11073:27:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8068,
                  "nodeType": "ExpressionStatement",
                  "src": "11073:27:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 8080,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8071,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8059,
                                "src": "11124:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                  "typeString": "bytes32[] calldata"
                                }
                              },
                              "id": 8076,
                              "indexExpression": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8075,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8072,
                                    "name": "labels",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8059,
                                    "src": "11131:6:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                                      "typeString": "bytes32[] calldata"
                                    }
                                  },
                                  "id": 8073,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "11131:13:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 8074,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "11147:1:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "11131:17:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11124:25:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 8070,
                            "name": "state",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "11118:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                              "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                            }
                          },
                          "id": 8077,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11118:32:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8078,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8765,
                            "src": "11154:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 8079,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Owned",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11154:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "11118:46:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8069,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "11110:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11110:55:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8082,
                  "nodeType": "ExpressionStatement",
                  "src": "11110:55:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8087,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8084,
                            "name": "labels",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8059,
                            "src": "11196:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                              "typeString": "bytes32[] calldata"
                            }
                          },
                          "id": 8085,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "11196:13:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 8086,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11212:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "11196:17:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 8088,
                        "name": "labels",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8059,
                        "src": "11215:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 8089,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7291,
                        "src": "11223:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8083,
                      "name": "_eraseNodeHierarchy",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8606,
                      "src": "11176:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                        "typeString": "function (uint256,bytes32[] memory,bytes32)"
                      }
                    },
                    "id": 8090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11176:56:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8091,
                  "nodeType": "ExpressionStatement",
                  "src": "11176:56:29"
                }
              ]
            },
            "documentation": "@dev Allows anyone to delete the owner and resolver records for a (subdomain of) a\n     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',\n     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.\n     * @param labels A series of label hashes identifying the name to zero out, rooted at the\n       registrar's root. Must contain at least one element. For instance, to zero \n       'foo.bar.eth' on a registrar that owns '.eth', pass an array containing\n       [keccak256('foo'), keccak256('bar')].",
            "id": 8093,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "eraseNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8059,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 8093,
                  "src": "11027:25:29",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8057,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "11027:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8058,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11027:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11026:27:29"
            },
            "returnParameters": {
              "id": 8061,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11063:0:29"
            },
            "scope": 8755,
            "src": "11008:231:29",
            "stateMutability": "nonpayable",
            "superFunction": 8890,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8167,
              "nodeType": "Block",
              "src": "11541:496:29",
              "statements": [
                {
                  "assignments": [
                    8102
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8102,
                      "name": "registrar",
                      "nodeType": "VariableDeclaration",
                      "scope": 8167,
                      "src": "11551:17:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 8101,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "11551:7:29",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8107,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8105,
                        "name": "rootNode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7291,
                        "src": "11581:8:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8103,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "11571:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8104,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6730,
                      "src": "11571:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                        "typeString": "function (bytes32) view external returns (address)"
                      }
                    },
                    "id": 8106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11571:19:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11551:39:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 8113,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8109,
                          "name": "registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8102,
                          "src": "11608:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8111,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12964,
                              "src": "11629:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                "typeString": "contract HashRegistrar"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                "typeString": "contract HashRegistrar"
                              }
                            ],
                            "id": 8110,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11621:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 8112,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11621:13:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "11608:26:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8108,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "11600:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8114,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11600:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8115,
                  "nodeType": "ExpressionStatement",
                  "src": "11600:35:29"
                },
                {
                  "assignments": [
                    8117
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8117,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 8167,
                      "src": "11674:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8116,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "11674:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8121,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8118,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "11692:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8120,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8119,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8095,
                      "src": "11701:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "11692:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11674:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8127,
                        "name": "registrar",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8102,
                        "src": "11737:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8122,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8117,
                          "src": "11717:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8125,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "11717:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "id": 8126,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setRegistrar",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6336,
                      "src": "11717:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 8128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11717:30:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8129,
                  "nodeType": "ExpressionStatement",
                  "src": "11717:30:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8134,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8095,
                        "src": "11860:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8135,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8117,
                          "src": "11867:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8136,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deed",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7317,
                        "src": "11867:6:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8137,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8117,
                          "src": "11875:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8138,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "11875:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8131,
                            "name": "registrar",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8102,
                            "src": "11825:9:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 8130,
                          "name": "Registrar",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8920,
                          "src": "11815:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Registrar_$8920_$",
                            "typeString": "type(contract Registrar)"
                          }
                        },
                        "id": 8132,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11815:20:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Registrar_$8920",
                          "typeString": "contract Registrar"
                        }
                      },
                      "id": 8133,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptRegistrarTransfer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8904,
                      "src": "11815:44:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_contract$_Deed_$6372_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,contract Deed,uint256) external"
                      }
                    },
                    "id": 8139,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11815:79:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8140,
                  "nodeType": "ExpressionStatement",
                  "src": "11815:79:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8141,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "11935:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8143,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "deed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7317,
                      "src": "11935:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 8145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11949:1:29",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 8144,
                        "name": "Deed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6372,
                        "src": "11944:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Deed_$6372_$",
                          "typeString": "type(contract Deed)"
                        }
                      },
                      "id": 8146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11944:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "11935:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8148,
                  "nodeType": "ExpressionStatement",
                  "src": "11935:16:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8149,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "11961:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8151,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7319,
                      "src": "11961:18:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11982:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11961:22:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8154,
                  "nodeType": "ExpressionStatement",
                  "src": "11961:22:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8155,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "11993:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8157,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "11993:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8158,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12003:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "11993:11:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8160,
                  "nodeType": "ExpressionStatement",
                  "src": "11993:11:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8165,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8161,
                        "name": "h",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8117,
                        "src": "12014:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8163,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "12014:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8164,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12029:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12014:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8166,
                  "nodeType": "ExpressionStatement",
                  "src": "12014:16:29"
                }
              ]
            },
            "documentation": "@dev Transfers the deed to the current registrar, if different from this one.\n     * Used during the upgrade process to a permanent registrar.\n     * @param _hash The name hash to transfer.",
            "id": 8168,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 8098,
                    "name": "_hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8095,
                    "src": "11534:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                ],
                "id": 8099,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 8097,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7365,
                  "src": "11524:9:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$_t_bytes32_$",
                    "typeString": "modifier (bytes32)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "11524:16:29"
              }
            ],
            "name": "transferRegistrars",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8095,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8168,
                  "src": "11500:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8094,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11500:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11499:15:29"
            },
            "returnParameters": {
              "id": 8100,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11541:0:29"
            },
            "scope": 8755,
            "src": "11472:565:29",
            "stateMutability": "nonpayable",
            "superFunction": 8895,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8183,
              "nodeType": "Block",
              "src": "12523:82:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8177,
                    "name": "hash",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8170,
                    "src": "12533:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8178,
                  "nodeType": "ExpressionStatement",
                  "src": "12533:4:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8179,
                    "name": "deed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8172,
                    "src": "12539:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8180,
                  "nodeType": "ExpressionStatement",
                  "src": "12539:4:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8181,
                    "name": "registrationDate",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8174,
                    "src": "12545:16:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8182,
                  "nodeType": "ExpressionStatement",
                  "src": "12545:16:29"
                }
              ]
            },
            "documentation": "@dev Accepts a transfer from a previous registrar; stubbed out here since there\n     is no previous registrar implementing this interface.\n     * @param hash The sha3 hash of the label to transfer.\n@param deed The Deed object for the name being transferred in.\n@param registrationDate The date at which the name was originally registered.",
            "id": 8184,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptRegistrarTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8175,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8170,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8184,
                  "src": "12466:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8169,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12466:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8172,
                  "name": "deed",
                  "nodeType": "VariableDeclaration",
                  "scope": 8184,
                  "src": "12480:9:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Deed_$6372",
                    "typeString": "contract Deed"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8171,
                    "name": "Deed",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6372,
                    "src": "12480:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8174,
                  "name": "registrationDate",
                  "nodeType": "VariableDeclaration",
                  "scope": 8184,
                  "src": "12491:21:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8173,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12491:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12465:48:29"
            },
            "returnParameters": {
              "id": 8176,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12523:0:29"
            },
            "scope": 8755,
            "src": "12433:172:29",
            "stateMutability": "nonpayable",
            "superFunction": 8904,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8220,
              "nodeType": "Block",
              "src": "12699:141:29",
              "statements": [
                {
                  "assignments": [
                    8200
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8200,
                      "name": "h",
                      "nodeType": "VariableDeclaration",
                      "scope": 8220,
                      "src": "12709:15:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8199,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "12709:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8204,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8201,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "12727:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8203,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8202,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8186,
                      "src": "12736:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12727:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12709:33:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8206,
                            "name": "_hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8186,
                            "src": "12766:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 8205,
                          "name": "state",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8280,
                          "src": "12760:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                            "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                          }
                        },
                        "id": 8207,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12760:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 8209,
                              "name": "h",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8200,
                              "src": "12782:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                "typeString": "struct HashRegistrar.Entry storage pointer"
                              }
                            },
                            "id": 8210,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "deed",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7317,
                            "src": "12782:6:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Deed_$6372",
                              "typeString": "contract Deed"
                            }
                          ],
                          "id": 8208,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "12774:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8211,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "12774:15:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8212,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8200,
                          "src": "12791:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8213,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "12791:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8214,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8200,
                          "src": "12811:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8215,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7321,
                        "src": "12811:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8216,
                          "name": "h",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8200,
                          "src": "12820:1:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8217,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "highestBid",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7323,
                        "src": "12820:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 8218,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "12759:74:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_enum$_Mode_$8765_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(enum Registrar.Mode,address,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 8198,
                  "id": 8219,
                  "nodeType": "Return",
                  "src": "12752:81:29"
                }
              ]
            },
            "documentation": null,
            "id": 8221,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "entries",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8186,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12628:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8185,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12628:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12627:15:29"
            },
            "returnParameters": {
              "id": 8198,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8189,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12666:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$8765",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8188,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8765,
                    "src": "12666:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8191,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12672:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8190,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12672:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8193,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12681:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8192,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12681:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8195,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12687:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8194,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12687:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8197,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8221,
                  "src": "12693:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8196,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "12693:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12665:33:29"
            },
            "scope": 8755,
            "src": "12611:229:29",
            "stateMutability": "view",
            "superFunction": 8919,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8279,
              "nodeType": "Block",
              "src": "13126:528:29",
              "statements": [
                {
                  "assignments": [
                    8229
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8229,
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 8279,
                      "src": "13136:19:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8228,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "13136:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8233,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8230,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "13158:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8232,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8231,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8223,
                      "src": "13167:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13158:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13136:37:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 8238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "13188:22:29",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8235,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8223,
                          "src": "13199:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 8236,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12910,
                          "src": "13206:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 8234,
                        "name": "isAllowed",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8296,
                        "src": "13189:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) view returns (bool)"
                        }
                      },
                      "id": 8237,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13189:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 8246,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 8243,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12910,
                        "src": "13274:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8244,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8229,
                          "src": "13280:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8245,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "13280:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13274:28:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 8276,
                      "nodeType": "Block",
                      "src": "13492:156:29",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8266,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8263,
                                "name": "entry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8229,
                                "src": "13510:5:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                  "typeString": "struct HashRegistrar.Entry storage pointer"
                                }
                              },
                              "id": 8264,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "highestBid",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7323,
                              "src": "13510:16:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8265,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "13530:1:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "13510:21:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 8274,
                            "nodeType": "Block",
                            "src": "13588:50:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8271,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13613:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8272,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Owned",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13613:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8273,
                                "nodeType": "Return",
                                "src": "13606:17:29"
                              }
                            ]
                          },
                          "id": 8275,
                          "nodeType": "IfStatement",
                          "src": "13506:132:29",
                          "trueBody": {
                            "id": 8270,
                            "nodeType": "Block",
                            "src": "13533:49:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8267,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13558:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8268,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Open",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13558:9:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8269,
                                "nodeType": "Return",
                                "src": "13551:16:29"
                              }
                            ]
                          }
                        }
                      ]
                    },
                    "id": 8277,
                    "nodeType": "IfStatement",
                    "src": "13270:378:29",
                    "trueBody": {
                      "id": 8262,
                      "nodeType": "Block",
                      "src": "13304:182:29",
                      "statements": [
                        {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8252,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 8247,
                              "name": "now",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12910,
                              "src": "13322:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8251,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8248,
                                  "name": "entry",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8229,
                                  "src": "13328:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                                    "typeString": "struct HashRegistrar.Entry storage pointer"
                                  }
                                },
                                "id": 8249,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "registrationDate",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7319,
                                "src": "13328:22:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 8250,
                                "name": "revealPeriod",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7307,
                                "src": "13353:12:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "13328:37:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "13322:43:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 8260,
                            "nodeType": "Block",
                            "src": "13425:51:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8257,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13450:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8258,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Reveal",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13450:11:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8259,
                                "nodeType": "Return",
                                "src": "13443:18:29"
                              }
                            ]
                          },
                          "id": 8261,
                          "nodeType": "IfStatement",
                          "src": "13318:158:29",
                          "trueBody": {
                            "id": 8256,
                            "nodeType": "Block",
                            "src": "13367:52:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8253,
                                    "name": "Mode",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8765,
                                    "src": "13392:4:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                                      "typeString": "type(enum Registrar.Mode)"
                                    }
                                  },
                                  "id": 8254,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "Auction",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "13392:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_enum$_Mode_$8765",
                                    "typeString": "enum Registrar.Mode"
                                  }
                                },
                                "functionReturnParameters": 8227,
                                "id": 8255,
                                "nodeType": "Return",
                                "src": "13385:19:29"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 8278,
                  "nodeType": "IfStatement",
                  "src": "13184:464:29",
                  "trueBody": {
                    "id": 8242,
                    "nodeType": "Block",
                    "src": "13212:52:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8239,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8765,
                            "src": "13233:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 8240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "NotYetAvailable",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "13233:20:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "functionReturnParameters": 8227,
                        "id": 8241,
                        "nodeType": "Return",
                        "src": "13226:27:29"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8280,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "state",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8224,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8223,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8280,
                  "src": "13084:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8222,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13084:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13083:15:29"
            },
            "returnParameters": {
              "id": 8227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8226,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8280,
                  "src": "13120:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Mode_$8765",
                    "typeString": "enum Registrar.Mode"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8225,
                    "name": "Mode",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8765,
                    "src": "13120:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13119:6:29"
            },
            "scope": 8755,
            "src": "13069:585:29",
            "stateMutability": "view",
            "superFunction": 8822,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8295,
              "nodeType": "Block",
              "src": "14059:58:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8293,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8289,
                      "name": "_timestamp",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8284,
                      "src": "14076:10:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8291,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8282,
                          "src": "14104:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 8290,
                        "name": "getAllowedTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8319,
                        "src": "14089:14:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view returns (uint256)"
                        }
                      },
                      "id": 8292,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14089:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14076:34:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 8288,
                  "id": 8294,
                  "nodeType": "Return",
                  "src": "14069:41:29"
                }
              ]
            },
            "documentation": "@dev Determines if a name is available for registration yet\n     * Each name will be assigned a random date in which its auction\ncan be started, from 0 to 8 weeks\n     * @param _hash The hash to start an auction on\n@param _timestamp The timestamp to query about",
            "id": 8296,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isAllowed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8285,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8282,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8296,
                  "src": "13992:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8281,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13992:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8284,
                  "name": "_timestamp",
                  "nodeType": "VariableDeclaration",
                  "scope": 8296,
                  "src": "14007:15:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8283,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14007:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13991:32:29"
            },
            "returnParameters": {
              "id": 8288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8287,
                  "name": "allowed",
                  "nodeType": "VariableDeclaration",
                  "scope": 8296,
                  "src": "14045:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8286,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14045:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14044:14:29"
            },
            "scope": 8755,
            "src": "13973:144:29",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8318,
              "nodeType": "Block",
              "src": "14424:140:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8316,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8303,
                      "name": "registryStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7315,
                      "src": "14441:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8314,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8311,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 8304,
                                  "name": "launchLength",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7310,
                                  "src": "14461:12:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint32",
                                    "typeString": "uint32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "*",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "components": [
                                    {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 8309,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 8306,
                                            "name": "_hash",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8298,
                                            "src": "14482:5:29",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "id": 8305,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "14477:4:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": "uint"
                                        },
                                        "id": 8307,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "14477:11:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": ">>",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "hexValue": "313238",
                                        "id": 8308,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "14492:3:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_128_by_1",
                                          "typeString": "int_const 128"
                                        },
                                        "value": "128"
                                      },
                                      "src": "14477:18:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "id": 8310,
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "TupleExpression",
                                  "src": "14476:20:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "14461:35:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 8312,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "14460:37:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "313238",
                            "id": 8313,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14501:3:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "14460:44:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 8315,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "14459:46:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14441:64:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8302,
                  "id": 8317,
                  "nodeType": "Return",
                  "src": "14434:71:29"
                }
              ]
            },
            "documentation": "@dev Returns available date for hash\n     * The available time from the `registryStarted` for a hash is proportional\nto its numeric value.\n     * @param _hash The hash to start an auction on",
            "id": 8319,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getAllowedTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8298,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8319,
                  "src": "14382:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8297,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14382:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14381:15:29"
            },
            "returnParameters": {
              "id": 8302,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8301,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8319,
                  "src": "14418:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8300,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14418:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14417:6:29"
            },
            "scope": 8755,
            "src": "14358:206:29",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8342,
              "nodeType": "Block",
              "src": "14954:77:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8335,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8321,
                            "src": "14998:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 8336,
                            "name": "owner",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8323,
                            "src": "15004:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 8337,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8325,
                            "src": "15011:5:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 8338,
                            "name": "salt",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8327,
                            "src": "15018:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 8333,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12895,
                            "src": "14981:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 8334,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "encodePacked",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "14981:16:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 8339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14981:42:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 8332,
                      "name": "keccak256",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12902,
                      "src": "14971:9:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes memory) pure returns (bytes32)"
                      }
                    },
                    "id": 8340,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14971:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 8331,
                  "id": 8341,
                  "nodeType": "Return",
                  "src": "14964:60:29"
                }
              ]
            },
            "documentation": "@dev Hash the values required for a secret bid\n     * @param hash The node corresponding to the desired namehash\n@param value The bid amount\n@param salt A random value to ensure secrecy of the bid\n@return The hash of the bid values",
            "id": 8343,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "shaBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8328,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8321,
                  "name": "hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14869:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8320,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14869:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8323,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14883:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8322,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14883:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8325,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14898:10:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8324,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "14898:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8327,
                  "name": "salt",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14910:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8326,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14910:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14868:55:29"
            },
            "returnParameters": {
              "id": 8331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8330,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8343,
                  "src": "14945:7:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8329,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14945:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14944:9:29"
            },
            "scope": 8755,
            "src": "14853:178:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8396,
              "nodeType": "Block",
              "src": "15090:302:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 8355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8350,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7291,
                          "src": "15114:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 8348,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "15104:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$6761",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 8349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6730,
                        "src": "15104:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 8351,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15104:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8353,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12964,
                          "src": "15135:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 8352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "15127:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 8354,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "15127:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "15104:36:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8395,
                  "nodeType": "IfStatement",
                  "src": "15100:286:29",
                  "trueBody": {
                    "id": 8394,
                    "nodeType": "Block",
                    "src": "15142:244:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8359,
                              "name": "rootNode",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7291,
                              "src": "15176:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 8360,
                              "name": "label",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8345,
                              "src": "15186:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 8362,
                                  "name": "this",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12964,
                                  "src": "15201:4:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                    "typeString": "contract HashRegistrar"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                                    "typeString": "contract HashRegistrar"
                                  }
                                ],
                                "id": 8361,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15193:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 8363,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15193:13:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8356,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "15156:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$6761",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 8358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setSubnodeOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6695,
                            "src": "15156:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                              "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                            }
                          },
                          "id": 8364,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15156:51:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 8365,
                        "nodeType": "ExpressionStatement",
                        "src": "15156:51:29"
                      },
                      {
                        "assignments": [
                          8367
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8367,
                            "name": "node",
                            "nodeType": "VariableDeclaration",
                            "scope": 8394,
                            "src": "15221:12:29",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 8366,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "15221:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 8375,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 8371,
                                  "name": "rootNode",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7291,
                                  "src": "15263:8:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 8372,
                                  "name": "label",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8345,
                                  "src": "15273:5:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8369,
                                  "name": "abi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12895,
                                  "src": "15246:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_magic_abi",
                                    "typeString": "abi"
                                  }
                                },
                                "id": 8370,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "encodePacked",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "15246:16:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function () pure returns (bytes memory)"
                                }
                              },
                              "id": 8373,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15246:33:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 8368,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12902,
                            "src": "15236:9:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 8374,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15236:44:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "15221:59:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8379,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8367,
                              "src": "15310:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 8381,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15324:3:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 8380,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15316:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 8382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15316:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8376,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "15294:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$6761",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 8378,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setResolver",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6702,
                            "src": "15294:15:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 8383,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15294:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8384,
                        "nodeType": "ExpressionStatement",
                        "src": "15294:35:29"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8388,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8367,
                              "src": "15356:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "hexValue": "307830",
                                  "id": 8390,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "15370:3:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0x0"
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  }
                                ],
                                "id": 8389,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "15362:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": "address"
                              },
                              "id": 8391,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "15362:12:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8385,
                              "name": "ens",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "15343:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ENS_$6761",
                                "typeString": "contract ENS"
                              }
                            },
                            "id": 8387,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "setOwner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6709,
                            "src": "15343:12:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                              "typeString": "function (bytes32,address) external"
                            }
                          },
                          "id": 8392,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15343:32:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8393,
                        "nodeType": "ExpressionStatement",
                        "src": "15343:32:29"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8397,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_tryEraseSingleNode",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8345,
                  "name": "label",
                  "nodeType": "VariableDeclaration",
                  "scope": 8397,
                  "src": "15066:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8344,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15066:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15065:15:29"
            },
            "returnParameters": {
              "id": 8347,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15090:0:29"
            },
            "scope": 8755,
            "src": "15037:355:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8455,
              "nodeType": "Block",
              "src": "15460:366:29",
              "statements": [
                {
                  "assignments": [
                    8405
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8405,
                      "name": "mode",
                      "nodeType": "VariableDeclaration",
                      "scope": 8455,
                      "src": "15470:9:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8404,
                        "name": "Mode",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 8765,
                        "src": "15470:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8409,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8407,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8399,
                        "src": "15488:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 8406,
                      "name": "state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8280,
                      "src": "15482:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_enum$_Mode_$8765_$",
                        "typeString": "function (bytes32) view returns (enum Registrar.Mode)"
                      }
                    },
                    "id": 8408,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15482:12:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15470:24:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_Mode_$8765",
                      "typeString": "enum Registrar.Mode"
                    },
                    "id": 8413,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8410,
                      "name": "mode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8405,
                      "src": "15508:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8411,
                        "name": "Mode",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8765,
                        "src": "15516:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                          "typeString": "type(enum Registrar.Mode)"
                        }
                      },
                      "id": 8412,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "Auction",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15516:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_Mode_$8765",
                        "typeString": "enum Registrar.Mode"
                      }
                    },
                    "src": "15508:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8415,
                  "nodeType": "IfStatement",
                  "src": "15504:33:29",
                  "trueBody": {
                    "expression": null,
                    "functionReturnParameters": 8403,
                    "id": 8414,
                    "nodeType": "Return",
                    "src": "15530:7:29"
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_Mode_$8765",
                          "typeString": "enum Registrar.Mode"
                        },
                        "id": 8420,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8417,
                          "name": "mode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8405,
                          "src": "15554:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8418,
                            "name": "Mode",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8765,
                            "src": "15562:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_Mode_$8765_$",
                              "typeString": "type(enum Registrar.Mode)"
                            }
                          },
                          "id": 8419,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "Open",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "15562:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_Mode_$8765",
                            "typeString": "enum Registrar.Mode"
                          }
                        },
                        "src": "15554:17:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8416,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "15546:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8421,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15546:26:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8422,
                  "nodeType": "ExpressionStatement",
                  "src": "15546:26:29"
                },
                {
                  "assignments": [
                    8424
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8424,
                      "name": "newAuction",
                      "nodeType": "VariableDeclaration",
                      "scope": 8455,
                      "src": "15583:24:29",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                        "typeString": "struct HashRegistrar.Entry"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8423,
                        "name": "Entry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7324,
                        "src": "15583:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8428,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 8425,
                      "name": "_entries",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7295,
                      "src": "15610:8:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Entry_$7324_storage_$",
                        "typeString": "mapping(bytes32 => struct HashRegistrar.Entry storage ref)"
                      }
                    },
                    "id": 8427,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 8426,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8399,
                      "src": "15619:5:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "15610:15:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Entry_$7324_storage",
                      "typeString": "struct HashRegistrar.Entry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15583:42:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8435,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8429,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8424,
                        "src": "15635:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8431,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "registrationDate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7319,
                      "src": "15635:27:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 8434,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 8432,
                        "name": "now",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12910,
                        "src": "15665:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 8433,
                        "name": "totalAuctionLength",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7304,
                        "src": "15671:18:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      "src": "15665:24:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15635:54:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8436,
                  "nodeType": "ExpressionStatement",
                  "src": "15635:54:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8437,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8424,
                        "src": "15699:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8439,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "value",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7321,
                      "src": "15699:16:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8440,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15718:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15699:20:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8442,
                  "nodeType": "ExpressionStatement",
                  "src": "15699:20:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8447,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8443,
                        "name": "newAuction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8424,
                        "src": "15729:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                          "typeString": "struct HashRegistrar.Entry storage pointer"
                        }
                      },
                      "id": 8445,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "highestBid",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7323,
                      "src": "15729:21:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8446,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15753:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15729:25:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8448,
                  "nodeType": "ExpressionStatement",
                  "src": "15729:25:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8450,
                        "name": "_hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8399,
                        "src": "15784:5:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8451,
                          "name": "newAuction",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8424,
                          "src": "15791:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Entry_$7324_storage_ptr",
                            "typeString": "struct HashRegistrar.Entry storage pointer"
                          }
                        },
                        "id": 8452,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "registrationDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7319,
                        "src": "15791:27:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8449,
                      "name": "AuctionStarted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8771,
                      "src": "15769:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 8453,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15769:50:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8454,
                  "nodeType": "EmitStatement",
                  "src": "15764:55:29"
                }
              ]
            },
            "documentation": null,
            "id": 8456,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [],
                "id": 8402,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 8401,
                  "name": "registryOpen",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 7395,
                  "src": "15445:12:29",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "15445:14:29"
              }
            ],
            "name": "_startAuction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8399,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8456,
                  "src": "15421:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8398,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15421:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15420:15:29"
            },
            "returnParameters": {
              "id": 8403,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15460:0:29"
            },
            "scope": 8755,
            "src": "15398:428:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8481,
              "nodeType": "Block",
              "src": "15891:109:29",
              "statements": [
                {
                  "body": {
                    "id": 8479,
                    "nodeType": "Block",
                    "src": "15944:50:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8474,
                                "name": "_hashes",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8459,
                                "src": "15972:7:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 8476,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8475,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8463,
                                "src": "15980:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15972:10:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 8473,
                            "name": "_startAuction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8456,
                            "src": "15958:13:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 8477,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15958:25:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8478,
                        "nodeType": "ExpressionStatement",
                        "src": "15958:25:29"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8466,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8463,
                      "src": "15918:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8467,
                        "name": "_hashes",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8459,
                        "src": "15922:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                          "typeString": "bytes32[] memory"
                        }
                      },
                      "id": 8468,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "15922:14:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "15918:18:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8480,
                  "initializationExpression": {
                    "assignments": [
                      8463
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8463,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 8480,
                        "src": "15906:6:29",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8462,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "15906:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 8465,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8464,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15915:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "15906:10:29"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8471,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15938:4:29",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8470,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8463,
                        "src": "15938:1:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8472,
                    "nodeType": "ExpressionStatement",
                    "src": "15938:4:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "15901:93:29"
                }
              ]
            },
            "documentation": null,
            "id": 8482,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_startAuctions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8459,
                  "name": "_hashes",
                  "nodeType": "VariableDeclaration",
                  "scope": 8482,
                  "src": "15856:24:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8457,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15856:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8458,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15856:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15855:26:29"
            },
            "returnParameters": {
              "id": 8461,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15891:0:29"
            },
            "scope": 8755,
            "src": "15832:168:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8539,
              "nodeType": "Block",
              "src": "16051:357:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 8499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 8489,
                                  "name": "sealedBids",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7301,
                                  "src": "16077:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                                    "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                                  }
                                },
                                "id": 8492,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8490,
                                    "name": "msg",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12908,
                                    "src": "16088:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_message",
                                      "typeString": "msg"
                                    }
                                  },
                                  "id": 8491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sender",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "16088:10:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "16077:22:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                                  "typeString": "mapping(bytes32 => contract Deed)"
                                }
                              },
                              "id": 8494,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8493,
                                "name": "sealedBid",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8484,
                                "src": "16100:9:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16077:33:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Deed_$6372",
                                "typeString": "contract Deed"
                              }
                            ],
                            "id": 8488,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16069:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 8495,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16069:42:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "307830",
                              "id": 8497,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "16123:3:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0x0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 8496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "16115:7:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 8498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16115:12:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "16069:58:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8487,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "16061:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16061:67:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8501,
                  "nodeType": "ExpressionStatement",
                  "src": "16061:67:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8506,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8503,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "16146:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 8504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16146:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 8505,
                          "name": "minPrice",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7313,
                          "src": "16159:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "16146:21:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8502,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        12911,
                        12912
                      ],
                      "referencedDeclaration": 12911,
                      "src": "16138:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8507,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16138:30:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8508,
                  "nodeType": "ExpressionStatement",
                  "src": "16138:30:29"
                },
                {
                  "assignments": [
                    8510
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8510,
                      "name": "bid",
                      "nodeType": "VariableDeclaration",
                      "scope": 8539,
                      "src": "16233:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 8509,
                        "name": "Deed",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6372,
                        "src": "16233:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Deed_$6372",
                          "typeString": "contract Deed"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8521,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8518,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "16286:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 8519,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16286:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8515,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "16275:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 8516,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16275:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 8512,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "16245:22:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$",
                                "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 8511,
                                "name": "DeedImplementation",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 6624,
                                "src": "16249:18:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DeedImplementation_$6624",
                                  "typeString": "contract DeedImplementation"
                                }
                              }
                            }
                          ],
                          "id": 8513,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16244:24:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$",
                            "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                          }
                        },
                        "id": 8514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16244:30:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$value_$",
                          "typeString": "function (uint256) returns (function (address payable) payable returns (contract DeedImplementation))"
                        }
                      },
                      "id": 8517,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16244:41:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_creation_payable$_t_address_payable_$returns$_t_contract$_DeedImplementation_$6624_$value",
                        "typeString": "function (address payable) payable returns (contract DeedImplementation)"
                      }
                    },
                    "id": 8520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16244:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DeedImplementation_$6624",
                      "typeString": "contract DeedImplementation"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "16233:64:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 8522,
                          "name": "sealedBids",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7301,
                          "src": "16307:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$_$",
                            "typeString": "mapping(address => mapping(bytes32 => contract Deed))"
                          }
                        },
                        "id": 8526,
                        "indexExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8523,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12908,
                            "src": "16318:3:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 8524,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "16318:10:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16307:22:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_contract$_Deed_$6372_$",
                          "typeString": "mapping(bytes32 => contract Deed)"
                        }
                      },
                      "id": 8527,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8525,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8484,
                        "src": "16330:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "16307:33:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8528,
                      "name": "bid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8510,
                      "src": "16343:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Deed_$6372",
                        "typeString": "contract Deed"
                      }
                    },
                    "src": "16307:39:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Deed_$6372",
                      "typeString": "contract Deed"
                    }
                  },
                  "id": 8530,
                  "nodeType": "ExpressionStatement",
                  "src": "16307:39:29"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8532,
                        "name": "sealedBid",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8484,
                        "src": "16368:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8533,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "16379:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 8534,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16379:10:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8535,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12908,
                          "src": "16391:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 8536,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "16391:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8531,
                      "name": "NewBid",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8779,
                      "src": "16361:6:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,address,uint256)"
                      }
                    },
                    "id": 8537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16361:40:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8538,
                  "nodeType": "EmitStatement",
                  "src": "16356:45:29"
                }
              ]
            },
            "documentation": null,
            "id": 8540,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_newBid",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8484,
                  "name": "sealedBid",
                  "nodeType": "VariableDeclaration",
                  "scope": 8540,
                  "src": "16023:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8483,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16023:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16022:19:29"
            },
            "returnParameters": {
              "id": 8486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16051:0:29"
            },
            "scope": 8755,
            "src": "16006:402:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8605,
              "nodeType": "Block",
              "src": "16501:441:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8553,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8547,
                        "src": "16569:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 8554,
                          "name": "labels",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8545,
                          "src": "16575:6:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 8556,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8555,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8542,
                          "src": "16582:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16575:11:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 8558,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12964,
                            "src": "16596:4:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                              "typeString": "contract HashRegistrar"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                              "typeString": "contract HashRegistrar"
                            }
                          ],
                          "id": 8557,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16588:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8559,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16588:13:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8550,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "16549:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8552,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setSubnodeOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6695,
                      "src": "16549:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                      }
                    },
                    "id": 8560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16549:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8561,
                  "nodeType": "ExpressionStatement",
                  "src": "16549:53:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8562,
                      "name": "node",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8547,
                      "src": "16612:4:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 8566,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8547,
                              "src": "16646:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8567,
                                "name": "labels",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8545,
                                "src": "16652:6:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 8569,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8568,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8542,
                                "src": "16659:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "16652:11:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 8564,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12895,
                              "src": "16629:3:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 8565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodePacked",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "16629:16:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 8570,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16629:35:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 8563,
                        "name": "keccak256",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12902,
                        "src": "16619:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes memory) pure returns (bytes32)"
                        }
                      },
                      "id": 8571,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "16619:46:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16612:53:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8573,
                  "nodeType": "ExpressionStatement",
                  "src": "16612:53:29"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8574,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8542,
                      "src": "16724:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8575,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16730:1:29",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16724:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8586,
                  "nodeType": "IfStatement",
                  "src": "16720:80:29",
                  "trueBody": {
                    "id": 8585,
                    "nodeType": "Block",
                    "src": "16733:67:29",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8580,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 8578,
                                "name": "idx",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8542,
                                "src": "16767:3:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 8579,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "16773:1:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "16767:7:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 8581,
                              "name": "labels",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8545,
                              "src": "16776:6:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 8582,
                              "name": "node",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8547,
                              "src": "16784:4:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                "typeString": "bytes32[] memory"
                              },
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 8577,
                            "name": "_eraseNodeHierarchy",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8606,
                            "src": "16747:19:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$returns$__$",
                              "typeString": "function (uint256,bytes32[] memory,bytes32)"
                            }
                          },
                          "id": 8583,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "16747:42:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8584,
                        "nodeType": "ExpressionStatement",
                        "src": "16747:42:29"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8590,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8547,
                        "src": "16874:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 8592,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16888:3:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 8591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16880:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8593,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16880:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8587,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "16858:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8589,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setResolver",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6702,
                      "src": "16858:15:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 8594,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16858:35:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8595,
                  "nodeType": "ExpressionStatement",
                  "src": "16858:35:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8599,
                        "name": "node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8547,
                        "src": "16916:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "307830",
                            "id": 8601,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16930:3:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0x0"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            }
                          ],
                          "id": 8600,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "16922:7:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 8602,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16922:12:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 8596,
                        "name": "ens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "16903:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ENS_$6761",
                          "typeString": "contract ENS"
                        }
                      },
                      "id": 8598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setOwner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6709,
                      "src": "16903:12:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address) external"
                      }
                    },
                    "id": 8603,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16903:32:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8604,
                  "nodeType": "ExpressionStatement",
                  "src": "16903:32:29"
                }
              ]
            },
            "documentation": null,
            "id": 8606,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_eraseNodeHierarchy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8548,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8542,
                  "name": "idx",
                  "nodeType": "VariableDeclaration",
                  "scope": 8606,
                  "src": "16443:8:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8541,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "16443:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8545,
                  "name": "labels",
                  "nodeType": "VariableDeclaration",
                  "scope": 8606,
                  "src": "16453:23:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8543,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "16453:7:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8544,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16453:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8547,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 8606,
                  "src": "16478:12:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8546,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16478:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16442:49:29"
            },
            "returnParameters": {
              "id": 8549,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16501:0:29"
            },
            "scope": 8755,
            "src": "16414:528:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8630,
              "nodeType": "Block",
              "src": "17198:118:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 8620,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8615,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7291,
                          "src": "17222:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 8613,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "17212:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$6761",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 8614,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "owner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6730,
                        "src": "17212:9:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_address_$",
                          "typeString": "function (bytes32) view external returns (address)"
                        }
                      },
                      "id": 8616,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17212:19:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8618,
                          "name": "this",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 12964,
                          "src": "17243:4:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_HashRegistrar_$8755",
                            "typeString": "contract HashRegistrar"
                          }
                        ],
                        "id": 8617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "17235:7:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": "address"
                      },
                      "id": 8619,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17235:13:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "17212:36:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 8629,
                  "nodeType": "IfStatement",
                  "src": "17208:101:29",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8624,
                          "name": "rootNode",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7291,
                          "src": "17282:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 8625,
                          "name": "_hash",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8608,
                          "src": "17292:5:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 8626,
                          "name": "_newOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8610,
                          "src": "17299:9:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 8621,
                          "name": "ens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "17262:3:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ENS_$6761",
                            "typeString": "contract ENS"
                          }
                        },
                        "id": 8623,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "setSubnodeOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6695,
                        "src": "17262:19:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32,bytes32,address) external returns (bytes32)"
                        }
                      },
                      "id": 8627,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "17262:47:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 8628,
                    "nodeType": "ExpressionStatement",
                    "src": "17262:47:29"
                  }
                }
              ]
            },
            "documentation": "@dev Assign the owner in ENS, if we're still the registrar\n     * @param _hash hash to change owner\n@param _newOwner new owner to transfer to",
            "id": 8631,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "trySetSubnodeOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8608,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 8631,
                  "src": "17155:13:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8607,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17155:7:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8610,
                  "name": "_newOwner",
                  "nodeType": "VariableDeclaration",
                  "scope": 8631,
                  "src": "17170:17:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8609,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "17170:7:29",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17154:34:29"
            },
            "returnParameters": {
              "id": 8612,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17198:0:29"
            },
            "scope": 8755,
            "src": "17127:189:29",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8648,
              "nodeType": "Block",
              "src": "17584:83:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8642,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8640,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8633,
                      "src": "17598:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8641,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8635,
                      "src": "17602:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17598:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8645,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8635,
                      "src": "17659:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8639,
                    "id": 8646,
                    "nodeType": "Return",
                    "src": "17652:8:29"
                  },
                  "id": 8647,
                  "nodeType": "IfStatement",
                  "src": "17594:66:29",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8643,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8633,
                      "src": "17624:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8639,
                    "id": 8644,
                    "nodeType": "Return",
                    "src": "17617:8:29"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the maximum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The maximum of two unsigned integers",
            "id": 8649,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "max",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8633,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 8649,
                  "src": "17539:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8632,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17539:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8635,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 8649,
                  "src": "17547:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8634,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17547:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17538:16:29"
            },
            "returnParameters": {
              "id": 8639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8638,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8649,
                  "src": "17578:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8637,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17578:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17577:6:29"
            },
            "scope": 8755,
            "src": "17526:141:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8666,
              "nodeType": "Block",
              "src": "17935:83:29",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8658,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8651,
                      "src": "17949:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8659,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8653,
                      "src": "17953:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17949:5:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8663,
                      "name": "b",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8653,
                      "src": "18010:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8657,
                    "id": 8664,
                    "nodeType": "Return",
                    "src": "18003:8:29"
                  },
                  "id": 8665,
                  "nodeType": "IfStatement",
                  "src": "17945:66:29",
                  "trueBody": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8661,
                      "name": "a",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8651,
                      "src": "17975:1:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "functionReturnParameters": 8657,
                    "id": 8662,
                    "nodeType": "Return",
                    "src": "17968:8:29"
                  }
                }
              ]
            },
            "documentation": "@dev Returns the minimum of two unsigned integers\n     * @param a A number to compare\n@param b A number to compare\n@return The minimum of two unsigned integers",
            "id": 8667,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "min",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8654,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8651,
                  "name": "a",
                  "nodeType": "VariableDeclaration",
                  "scope": 8667,
                  "src": "17890:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8650,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17890:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8653,
                  "name": "b",
                  "nodeType": "VariableDeclaration",
                  "scope": 8667,
                  "src": "17898:6:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8652,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17898:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17889:16:29"
            },
            "returnParameters": {
              "id": 8657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8656,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8667,
                  "src": "17929:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8655,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "17929:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17928:6:29"
            },
            "scope": 8755,
            "src": "17877:141:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8753,
              "nodeType": "Block",
              "src": "18256:779:29",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8674,
                    "name": "s",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8669,
                    "src": "18266:1:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "id": 8675,
                  "nodeType": "ExpressionStatement",
                  "src": "18266:1:29"
                },
                {
                  "assignments": [
                    8677
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8677,
                      "name": "ptr",
                      "nodeType": "VariableDeclaration",
                      "scope": 8753,
                      "src": "18384:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8676,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18384:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8678,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18384:8:29"
                },
                {
                  "assignments": [
                    8680
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8680,
                      "name": "end",
                      "nodeType": "VariableDeclaration",
                      "scope": 8753,
                      "src": "18402:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8679,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18402:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8681,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18402:8:29"
                },
                {
                  "externalReferences": [
                    {
                      "ptr": {
                        "declaration": 8677,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18443:3:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "end": {
                        "declaration": 8680,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18472:3:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 8669,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18454:1:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "s": {
                        "declaration": 8669,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18489:1:29",
                        "valueSize": 1
                      }
                    },
                    {
                      "ptr": {
                        "declaration": 8677,
                        "isOffset": false,
                        "isSlot": false,
                        "src": "18493:3:29",
                        "valueSize": 1
                      }
                    }
                  ],
                  "id": 8682,
                  "nodeType": "InlineAssembly",
                  "operations": "{\n    ptr := add(s, 1)\n    end := add(mload(s), ptr)\n}",
                  "src": "18420:87:29"
                },
                {
                  "assignments": [
                    8684
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8684,
                      "name": "len",
                      "nodeType": "VariableDeclaration",
                      "scope": 8753,
                      "src": "18516:8:29",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8683,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "18516:4:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8686,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 8685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "18527:1:29",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18516:12:29"
                },
                {
                  "body": {
                    "id": 8749,
                    "nodeType": "Block",
                    "src": "18566:443:29",
                    "statements": [
                      {
                        "assignments": [
                          8696
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8696,
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 8749,
                            "src": "18580:7:29",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "typeName": {
                              "id": 8695,
                              "name": "uint8",
                              "nodeType": "ElementaryTypeName",
                              "src": "18580:5:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 8697,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "18580:7:29"
                      },
                      {
                        "externalReferences": [
                          {
                            "b": {
                              "declaration": 8696,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18612:1:29",
                              "valueSize": 1
                            }
                          },
                          {
                            "ptr": {
                              "declaration": 8677,
                              "isOffset": false,
                              "isSlot": false,
                              "src": "18627:3:29",
                              "valueSize": 1
                            }
                          }
                        ],
                        "id": 8698,
                        "nodeType": "InlineAssembly",
                        "operations": "{\n    b := and(mload(ptr), 0xFF)\n}",
                        "src": "18601:39:29"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          },
                          "id": 8701,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8699,
                            "name": "b",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8696,
                            "src": "18657:1:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30783830",
                            "id": 8700,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18661:4:29",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "0x80"
                          },
                          "src": "18657:8:29",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            },
                            "id": 8709,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 8707,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8696,
                              "src": "18718:1:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30784530",
                              "id": 8708,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "18722:4:29",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_224_by_1",
                                "typeString": "int_const 224"
                              },
                              "value": "0xE0"
                            },
                            "src": "18718:8:29",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint8",
                                "typeString": "uint8"
                              },
                              "id": 8717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 8715,
                                "name": "b",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8696,
                                "src": "18779:1:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30784630",
                                "id": 8716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "18783:4:29",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_240_by_1",
                                  "typeString": "int_const 240"
                                },
                                "value": "0xF0"
                              },
                              "src": "18779:8:29",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                },
                                "id": 8725,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 8723,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8696,
                                  "src": "18840:1:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30784638",
                                  "id": 8724,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18844:4:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_248_by_1",
                                    "typeString": "int_const 248"
                                  },
                                  "value": "0xF8"
                                },
                                "src": "18840:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  },
                                  "id": 8733,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 8731,
                                    "name": "b",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8696,
                                    "src": "18901:1:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "hexValue": "30784643",
                                    "id": 8732,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18905:4:29",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_252_by_1",
                                      "typeString": "int_const 252"
                                    },
                                    "value": "0xFC"
                                  },
                                  "src": "18901:8:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 8743,
                                  "nodeType": "Block",
                                  "src": "18958:41:29",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8741,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 8739,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8677,
                                          "src": "18976:3:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "36",
                                          "id": 8740,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18983:1:29",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_6_by_1",
                                            "typeString": "int_const 6"
                                          },
                                          "value": "6"
                                        },
                                        "src": "18976:8:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 8742,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18976:8:29"
                                    }
                                  ]
                                },
                                "id": 8744,
                                "nodeType": "IfStatement",
                                "src": "18897:102:29",
                                "trueBody": {
                                  "id": 8738,
                                  "nodeType": "Block",
                                  "src": "18911:41:29",
                                  "statements": [
                                    {
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8736,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "argumentTypes": null,
                                          "id": 8734,
                                          "name": "ptr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8677,
                                          "src": "18929:3:29",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "argumentTypes": null,
                                          "hexValue": "35",
                                          "id": 8735,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "18936:1:29",
                                          "subdenomination": null,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_5_by_1",
                                            "typeString": "int_const 5"
                                          },
                                          "value": "5"
                                        },
                                        "src": "18929:8:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 8737,
                                      "nodeType": "ExpressionStatement",
                                      "src": "18929:8:29"
                                    }
                                  ]
                                }
                              },
                              "id": 8745,
                              "nodeType": "IfStatement",
                              "src": "18836:163:29",
                              "trueBody": {
                                "id": 8730,
                                "nodeType": "Block",
                                "src": "18850:41:29",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8728,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 8726,
                                        "name": "ptr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8677,
                                        "src": "18868:3:29",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "+=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "34",
                                        "id": 8727,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "18875:1:29",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_4_by_1",
                                          "typeString": "int_const 4"
                                        },
                                        "value": "4"
                                      },
                                      "src": "18868:8:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8729,
                                    "nodeType": "ExpressionStatement",
                                    "src": "18868:8:29"
                                  }
                                ]
                              }
                            },
                            "id": 8746,
                            "nodeType": "IfStatement",
                            "src": "18775:224:29",
                            "trueBody": {
                              "id": 8722,
                              "nodeType": "Block",
                              "src": "18789:41:29",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8720,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 8718,
                                      "name": "ptr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8677,
                                      "src": "18807:3:29",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "+=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "hexValue": "33",
                                      "id": 8719,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "18814:1:29",
                                      "subdenomination": null,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_3_by_1",
                                        "typeString": "int_const 3"
                                      },
                                      "value": "3"
                                    },
                                    "src": "18807:8:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 8721,
                                  "nodeType": "ExpressionStatement",
                                  "src": "18807:8:29"
                                }
                              ]
                            }
                          },
                          "id": 8747,
                          "nodeType": "IfStatement",
                          "src": "18714:285:29",
                          "trueBody": {
                            "id": 8714,
                            "nodeType": "Block",
                            "src": "18728:41:29",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8712,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 8710,
                                    "name": "ptr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8677,
                                    "src": "18746:3:29",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "hexValue": "32",
                                    "id": 8711,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "18753:1:29",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "18746:8:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 8713,
                                "nodeType": "ExpressionStatement",
                                "src": "18746:8:29"
                              }
                            ]
                          }
                        },
                        "id": 8748,
                        "nodeType": "IfStatement",
                        "src": "18653:346:29",
                        "trueBody": {
                          "id": 8706,
                          "nodeType": "Block",
                          "src": "18667:41:29",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 8704,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 8702,
                                  "name": "ptr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8677,
                                  "src": "18685:3:29",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "31",
                                  "id": 8703,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "18692:1:29",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "18685:8:29",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 8705,
                              "nodeType": "ExpressionStatement",
                              "src": "18685:8:29"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8689,
                      "name": "ptr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8677,
                      "src": "18548:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8690,
                      "name": "end",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8680,
                      "src": "18554:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "18548:9:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8750,
                  "initializationExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8687,
                      "name": "len",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8684,
                      "src": "18543:3:29",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8688,
                    "nodeType": "ExpressionStatement",
                    "src": "18543:3:29"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "18559:5:29",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8692,
                        "name": "len",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8684,
                        "src": "18559:3:29",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8694,
                    "nodeType": "ExpressionStatement",
                    "src": "18559:5:29"
                  },
                  "nodeType": "ForStatement",
                  "src": "18538:471:29"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8751,
                    "name": "len",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8684,
                    "src": "19025:3:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8673,
                  "id": 8752,
                  "nodeType": "Return",
                  "src": "19018:10:29"
                }
              ]
            },
            "documentation": "@dev Returns the length of a given string\n     * @param s The string to measure the length of\n@return The length of the input string",
            "id": 8754,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "strlen",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8669,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 8754,
                  "src": "18210:15:29",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 8668,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "18210:6:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18209:17:29"
            },
            "returnParameters": {
              "id": 8673,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8672,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8754,
                  "src": "18250:4:29",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8671,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "18250:4:29",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18249:6:29"
            },
            "scope": 8755,
            "src": "18194:841:29",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 8756,
        "src": "586:18452:29"
      }
    ],
    "src": "0:19039:29"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.8+commit.23d335f2.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.13",
  "updatedAt": "2020-03-31T16:16:11.951Z",
  "devdoc": {
    "details": "The registrar handles the auction process for each subnode of the node it owns.",
    "methods": {
      "acceptRegistrarTransfer(bytes32,address,uint256)": {
        "details": "Accepts a transfer from a previous registrar; stubbed out here since there     is no previous registrar implementing this interface.",
        "params": {
          "deed": "The Deed object for the name being transferred in.",
          "hash": "The sha3 hash of the label to transfer.",
          "registrationDate": "The date at which the name was originally registered."
        }
      },
      "cancelBid(address,bytes32)": {
        "details": "Cancel a bid",
        "params": {
          "seal": "The value returned by the shaBid function"
        }
      },
      "constructor": {
        "details": "Constructs a new Registrar, with the provided address as the owner of the root node.",
        "params": {
          "_ens": "The address of the ENS",
          "_rootNode": "The hash of the rootnode."
        }
      },
      "eraseNode(bytes32[])": {
        "details": "Allows anyone to delete the owner and resolver records for a (subdomain of) a     name that is not currently owned in the registrar. If passing, eg, 'foo.bar.eth',     the owner and resolver fields on 'foo.bar.eth' and 'bar.eth' will all be cleared.",
        "params": {
          "labels": "A series of label hashes identifying the name to zero out, rooted at the       registrar's root. Must contain at least one element. For instance, to zero        'foo.bar.eth' on a registrar that owns '.eth', pass an array containing       [keccak256('foo'), keccak256('bar')]."
        }
      },
      "finalizeAuction(bytes32)": {
        "details": "Finalize an auction after the registration date has passed",
        "params": {
          "_hash": "The hash of the name the auction is for"
        }
      },
      "getAllowedTime(bytes32)": {
        "details": "Returns available date for hash     * The available time from the `registryStarted` for a hash is proportional to its numeric value.",
        "params": {
          "_hash": "The hash to start an auction on"
        }
      },
      "invalidateName(string)": {
        "details": "Submit a name 6 characters long or less. If it has been registered,     the submitter will earn 50% of the deed value.       * We are purposefully handicapping the simplified registrar as a way  to force it into being restructured in a few years.",
        "params": {
          "unhashedName": "An invalid name to search for in the registry."
        }
      },
      "isAllowed(bytes32,uint256)": {
        "details": "Determines if a name is available for registration yet     * Each name will be assigned a random date in which its auction can be started, from 0 to 8 weeks",
        "params": {
          "_hash": "The hash to start an auction on",
          "_timestamp": "The timestamp to query about"
        }
      },
      "newBid(bytes32)": {
        "details": "Submit a new sealed bid on a desired hash in a blind auction     * Bids are sent by sending a message to the main contract with a hash and an amount. The hash contains information about the bid, including the bidded hash, the bid amount, and a random salt. Bids are not tied to any one auction until they are revealed. The value of the bid itself can be masqueraded by sending more than the value of your actual bid. This is followed by a 48h reveal period. Bids revealed after this period will be burned and the ether unrecoverable. Since this is an auction, it is expected that most public hashes, like known domains and common dictionary words, will have multiple bidders pushing the price up.",
        "params": {
          "sealedBid": "A sealedBid, created by the shaBid function"
        }
      },
      "releaseDeed(bytes32)": {
        "details": "After some time, or if we're no longer the registrar, the owner can release     the name and get their ether back.",
        "params": {
          "_hash": "The node to release"
        }
      },
      "shaBid(bytes32,address,uint256,bytes32)": {
        "details": "Hash the values required for a secret bid",
        "params": {
          "hash": "The node corresponding to the desired namehash",
          "salt": "A random value to ensure secrecy of the bid",
          "value": "The bid amount"
        },
        "return": "The hash of the bid values"
      },
      "startAuction(bytes32)": {
        "details": "Start an auction for an available hash",
        "params": {
          "_hash": "The hash to start an auction on"
        }
      },
      "startAuctions(bytes32[])": {
        "details": "Start multiple auctions for better anonymity     * Anyone can start an auction by sending an array of hashes that they want to bid for. Arrays are sent so that someone can open up an auction for X dummy hashes when they are only really interested in bidding for one. This will increase the cost for an attacker to simply bid blindly on all new auctions. Dummy auctions that are open but not bid on are closed after a week.",
        "params": {
          "_hashes": "An array of hashes, at least one of which you presumably want to bid on"
        }
      },
      "startAuctionsAndBid(bytes32[],bytes32)": {
        "details": "Start a set of auctions and bid on one of them     * This method functions identically to calling `startAuctions` followed by `newBid`, but all in one transaction.",
        "params": {
          "hashes": "A list of hashes to start auctions on.",
          "sealedBid": "A sealed bid for one of the auctions."
        }
      },
      "transfer(bytes32,address)": {
        "details": "The owner of a domain may transfer it to someone else at any time.",
        "params": {
          "_hash": "The node to transfer",
          "newOwner": "The address to transfer ownership to"
        }
      },
      "transferRegistrars(bytes32)": {
        "details": "Transfers the deed to the current registrar, if different from this one.     * Used during the upgrade process to a permanent registrar.",
        "params": {
          "_hash": "The name hash to transfer."
        }
      },
      "unsealBid(bytes32,uint256,bytes32)": {
        "details": "Submit the properties of a bid to reveal them",
        "params": {
          "_hash": "The node in the sealedBid",
          "_salt": "The sale in the sealedBid",
          "_value": "The bid amount in the sealedBid"
        }
      }
    },
    "title": "Registrar"
  },
  "userdoc": {
    "methods": {}
  }
}