{
  "contractName": "ENSSubdomainRegistrar",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "POINT_ROOTNODE_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ens",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PUBLIC_RESOLVER_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "EVMSCRIPT_REGISTRY_APP_ID",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_label",
          "type": "bytes32"
        },
        {
          "name": "_target",
          "type": "address"
        }
      ],
      "name": "createNameAndPoint",
      "outputs": [
        {
          "name": "node",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_label",
          "type": "bytes32"
        },
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "createName",
      "outputs": [
        {
          "name": "node",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ETH_TLD_LABEL",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "EVMSCRIPT_REGISTRY_APP",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ENS_ROOT",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "DELETE_NAME_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_ens",
          "type": "address"
        },
        {
          "name": "_rootNode",
          "type": "bytes32"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PUBLIC_RESOLVER_LABEL",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_target",
          "type": "address"
        }
      ],
      "name": "pointRootNode",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_label",
          "type": "bytes32"
        }
      ],
      "name": "deleteName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rootNode",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ETH_TLD_NODE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CREATE_NAME_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "label",
          "type": "bytes32"
        }
      ],
      "name": "NewName",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "label",
          "type": "bytes32"
        }
      ],
      "name": "DeleteName",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b611ba98061001e6000396000f300606060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063307482cf1461012d5780633f15457f1461015e5780633f82e2c6146101b357806360b1e057146101e457806365b0bc85146102155780636b62cb1b1461027757806380afdea8146102d95780638b3dd7491461030a5780639b227a97146103335780639b3fdf4c14610364578063a1658fad14610395578063a9bf1c9f14610433578063bdbf7d4c14610464578063be13f47c14610495578063c84b1ce7146104db578063d4aae0c41461050c578063db60693114610561578063dc371e541461059a578063f92a79ff146105c1578063faff50a81461065e578063fdee38a91461068f578063fef47e38146106c0575b600080fd5b341561013857600080fd5b6101406106f1565b60405180826000191660001916815260200191505060405180910390f35b341561016957600080fd5b6101716106f9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101be57600080fd5b6101c661071f565b60405180826000191660001916815260200191505060405180910390f35b34156101ef57600080fd5b6101f76107eb565b60405180826000191660001916815260200191505060405180910390f35b341561022057600080fd5b61025960048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610824565b60405180826000191660001916815260200191505060405180910390f35b341561028257600080fd5b6102bb60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061087c565b60405180826000191660001916815260200191505060405180910390f35b34156102e457600080fd5b6102ec6108ca565b60405180826000191660001916815260200191505060405180910390f35b341561031557600080fd5b61031d6108d0565b6040518082815260200191505060405180910390f35b341561033e57600080fd5b6103466108da565b60405180826000191660001916815260200191505060405180910390f35b341561036f57600080fd5b610377610913565b60405180826000191660001916815260200191505060405180910390f35b34156103a057600080fd5b610419600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506109ae565b604051808215151515815260200191505060405180910390f35b341561043e57600080fd5b610446610bae565b60405180826000191660001916815260200191505060405180910390f35b341561046f57600080fd5b610477610bb6565b60405180826000191660001916815260200191505060405180910390f35b34156104a057600080fd5b6104d9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610bbe565b005b34156104e657600080fd5b6104ee610cfa565b60405180826000191660001916815260200191505060405180910390f35b341561051757600080fd5b61051f610d33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561056c57600080fd5b610598600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d58565b005b34156105a557600080fd5b6105bf600480803560001916906020019091905050610da2565b005b34156105cc57600080fd5b61061c600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611231565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066957600080fd5b610671611338565b60405180826000191660001916815260200191505060405180910390f35b341561069a57600080fd5b6106a261133e565b60405180826000191660001916815260200191505060405180910390f35b34156106cb57600080fd5b6106d36113a8565b60405180826000191660001916815260200191505060405180910390f35b600360010281565b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f7265736f6c76657200000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b6000600180026108543382600060405180591061083e5750595b90808252806020026020018201604052506109ae565b151561085f57600080fd5b61086984306113af565b91506108758284611607565b5092915050565b6000600180026108ac338260006040518059106108965750595b90808252806020026020018201604052506109ae565b15156108b757600080fd5b6108c184846113af565b91505092915050565b60015481565b6000600354905090565b60405180807f65746800000000000000000000000000000000000000000000000000000000008152506003019050604051809103902081565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60006109b8611b69565b600080845111156109d157602084510290508391508082525b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610ba357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdef9106873088866000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610b39578082015181840152602081019050610b1e565b50505050905090810190601f168015610b665780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610b8757600080fd5b6102c65a03f11515610b9857600080fd5b505050604051805190505b925050509392505050565b600060010281565b600260010281565b6000600354141515610bcf57600080fd5b610bd761187f565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610c6d57600080fd5b6102c65a03f11515610c7e57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610caa57600080fd5b81606460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606581600019169055505050565b60405180807f7265736f6c7665720000000000000000000000000000000000000000000000008152506008019050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600102610d8733826000604051805910610d715750595b90808252806020026020018201604052506109ae565b1515610d9257600080fd5b610d9e60655483611607565b5050565b6000806002600102610dd433826000604051805910610dbe5750595b90808252806020026020018201604052506109ae565b1515610ddf57600080fd5b6065548460405180836000191660001916815260200182600019166000191681526020019250505060405180910390209250606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610eb257600080fd5b6102c65a03f11515610ec357600080fd5b505050604051805190509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f0b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561103357606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360655486306040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b151561101e57600080fd5b6102c65a03f1151561102f57600080fd5b5050505b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8460006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561110057600080fd5b6102c65a03f1151561111157600080fd5b505050606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38460006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15156111e157600080fd5b6102c65a03f115156111f257600080fd5b505050836000191683600019167f49a4cd9bb38e10e402c44a680c5e13f710666ed683cb9cbbc131f7dc9f8b9d6060405160405180910390a350505050565b600061123b6118a0565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112cb5780820151818401526020810190506112b0565b50505050905090810190601f1680156112f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561131657600080fd5b6102c65a03f1151561132757600080fd5b505050604051805190509050919050565b60655481565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b6001800281565b60006065548360405180836000191660001916815260200182600019166000191681526020019250505060405180910390209050600073ffffffffffffffffffffffffffffffffffffffff16606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561149c57600080fd5b6102c65a03f115156114ad57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156114d957600080fd5b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360655485856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15156115b757600080fd5b6102c65a03f115156115c857600080fd5b505050826000191681600019167f8f858576a6066f5ecb4d2f49d40fac9db317ff8d5f7610d58b616b657d7044cf60405160405180910390a392915050565b60006116da600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f7265736f6c7665720000000000000000000000000000000000000000000000008152506008019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206119fe565b9050606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff1663d5fa2b0084846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561186657600080fd5b6102c65a03f1151561187757600080fd5b505050505050565b600060035414151561189057600080fd5b611898611b61565b600381905550565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156119da57600080fd5b6102c65a03f115156119eb57600080fd5b5050506040518051905090508091505090565b600080606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611aa257600080fd5b6102c65a03f11515611ab357600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611b3e57600080fd5b6102c65a03f11515611b4f57600080fd5b50505060405180519050915050919050565b600043905090565b6020604051908101604052806000815250905600a165627a7a723058207a62ffde0e616805c4e18df410b6b44dfc5e389b7cf29e8ee1569655193086b40029",
  "deployedBytecode": "0x606060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063307482cf1461012d5780633f15457f1461015e5780633f82e2c6146101b357806360b1e057146101e457806365b0bc85146102155780636b62cb1b1461027757806380afdea8146102d95780638b3dd7491461030a5780639b227a97146103335780639b3fdf4c14610364578063a1658fad14610395578063a9bf1c9f14610433578063bdbf7d4c14610464578063be13f47c14610495578063c84b1ce7146104db578063d4aae0c41461050c578063db60693114610561578063dc371e541461059a578063f92a79ff146105c1578063faff50a81461065e578063fdee38a91461068f578063fef47e38146106c0575b600080fd5b341561013857600080fd5b6101406106f1565b60405180826000191660001916815260200191505060405180910390f35b341561016957600080fd5b6101716106f9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101be57600080fd5b6101c661071f565b60405180826000191660001916815260200191505060405180910390f35b34156101ef57600080fd5b6101f76107eb565b60405180826000191660001916815260200191505060405180910390f35b341561022057600080fd5b61025960048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610824565b60405180826000191660001916815260200191505060405180910390f35b341561028257600080fd5b6102bb60048080356000191690602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061087c565b60405180826000191660001916815260200191505060405180910390f35b34156102e457600080fd5b6102ec6108ca565b60405180826000191660001916815260200191505060405180910390f35b341561031557600080fd5b61031d6108d0565b6040518082815260200191505060405180910390f35b341561033e57600080fd5b6103466108da565b60405180826000191660001916815260200191505060405180910390f35b341561036f57600080fd5b610377610913565b60405180826000191660001916815260200191505060405180910390f35b34156103a057600080fd5b610419600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919050506109ae565b604051808215151515815260200191505060405180910390f35b341561043e57600080fd5b610446610bae565b60405180826000191660001916815260200191505060405180910390f35b341561046f57600080fd5b610477610bb6565b60405180826000191660001916815260200191505060405180910390f35b34156104a057600080fd5b6104d9600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803560001916906020019091905050610bbe565b005b34156104e657600080fd5b6104ee610cfa565b60405180826000191660001916815260200191505060405180910390f35b341561051757600080fd5b61051f610d33565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561056c57600080fd5b610598600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610d58565b005b34156105a557600080fd5b6105bf600480803560001916906020019091905050610da2565b005b34156105cc57600080fd5b61061c600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611231565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561066957600080fd5b610671611338565b60405180826000191660001916815260200191505060405180910390f35b341561069a57600080fd5b6106a261133e565b60405180826000191660001916815260200191505060405180910390f35b34156106cb57600080fd5b6106d36113a8565b60405180826000191660001916815260200191505060405180910390f35b600360010281565b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f7265736f6c76657200000000000000000000000000000000000000000000000081525060080190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902081565b6000600180026108543382600060405180591061083e5750595b90808252806020026020018201604052506109ae565b151561085f57600080fd5b61086984306113af565b91506108758284611607565b5092915050565b6000600180026108ac338260006040518059106108965750595b90808252806020026020018201604052506109ae565b15156108b757600080fd5b6108c184846113af565b91505092915050565b60015481565b6000600354905090565b60405180807f65746800000000000000000000000000000000000000000000000000000000008152506003019050604051809103902081565b60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e6574680000000000000000000000000081525060130190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b60006109b8611b69565b600080845111156109d157602084510290508391508082525b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610ba357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fdef9106873088866000604051602001526040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610b39578082015181840152602081019050610b1e565b50505050905090810190601f168015610b665780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1515610b8757600080fd5b6102c65a03f11515610b9857600080fd5b505050604051805190505b925050509392505050565b600060010281565b600260010281565b6000600354141515610bcf57600080fd5b610bd761187f565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610c6d57600080fd5b6102c65a03f11515610c7e57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff16141515610caa57600080fd5b81606460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080606581600019169055505050565b60405180807f7265736f6c7665720000000000000000000000000000000000000000000000008152506008019050604051809103902081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003600102610d8733826000604051805910610d715750595b90808252806020026020018201604052506109ae565b1515610d9257600080fd5b610d9e60655483611607565b5050565b6000806002600102610dd433826000604051805910610dbe5750595b90808252806020026020018201604052506109ae565b1515610ddf57600080fd5b6065548460405180836000191660001916815260200182600019166000191681526020019250505060405180910390209250606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515610eb257600080fd5b6102c65a03f11515610ec357600080fd5b505050604051805190509150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f0b57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561103357606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360655486306040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b151561101e57600080fd5b6102c65a03f1151561102f57600080fd5b5050505b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a8460006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561110057600080fd5b6102c65a03f1151561111157600080fd5b505050606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635b0fc9c38460006040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15156111e157600080fd5b6102c65a03f115156111f257600080fd5b505050836000191683600019167f49a4cd9bb38e10e402c44a680c5e13f710666ed683cb9cbbc131f7dc9f8b9d6060405160405180910390a350505050565b600061123b6118a0565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836000604051602001526040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112cb5780820151818401526020810190506112b0565b50505050905090810190601f1680156112f85780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b151561131657600080fd5b6102c65a03f1151561132757600080fd5b505050604051805190509050919050565b60655481565b600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902081565b6001800281565b60006065548360405180836000191660001916815260200182600019166000191681526020019250505060405180910390209050600073ffffffffffffffffffffffffffffffffffffffff16606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166302571be3836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b151561149c57600080fd5b6102c65a03f115156114ad57600080fd5b5050506040518051905073ffffffffffffffffffffffffffffffffffffffff161415156114d957600080fd5b606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166306ab592360655485856040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180846000191660001916815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019350505050600060405180830381600087803b15156115b757600080fd5b6102c65a03f115156115c857600080fd5b505050826000191681600019167f8f858576a6066f5ecb4d2f49d40fac9db317ff8d5f7610d58b616b657d7044cf60405160405180910390a392915050565b60006116da600060010260405180807f657468000000000000000000000000000000000000000000000000000000000081525060030190506040518091039020604051808360001916600019168152602001826000191660001916815260200192505050604051809103902060405180807f7265736f6c7665720000000000000000000000000000000000000000000000008152506008019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206119fe565b9050606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631896f70a84836040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b15156117a857600080fd5b6102c65a03f115156117b957600080fd5b5050508073ffffffffffffffffffffffffffffffffffffffff1663d5fa2b0084846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b151561186657600080fd5b6102c65a03f1151561187757600080fd5b505050505050565b600060035414151561189057600080fd5b611898611b61565b600381905550565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342c71f1d60405180807f61707000000000000000000000000000000000000000000000000000000000008152506003019050604051809103902060405180807f65766d7265672e617261676f6e706d2e657468000000000000000000000000008152506013019050604051809103902060405180836000191660001916815260200182600019166000191681526020019250505060405180910390206000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15156119da57600080fd5b6102c65a03f115156119eb57600080fd5b5050506040518051905090508091505090565b600080606460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630178b8bf846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611aa257600080fd5b6102c65a03f11515611ab357600080fd5b5050506040518051905090508073ffffffffffffffffffffffffffffffffffffffff16633b3b57de846000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1515611b3e57600080fd5b6102c65a03f11515611b4f57600080fd5b50505060405180519050915050919050565b600043905090565b6020604051908101604052806000815250905600a165627a7a723058207a62ffde0e616805c4e18df410b6b44dfc5e389b7cf29e8ee1569655193086b40029",
  "sourceMap": "166:2550:27:-;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "166:2550:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;348:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;411:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:93:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;68:84:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1031:216:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;867:158;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;113:20:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;269:107:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;106:56:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;506:494:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;55:45:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;289:53:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;601:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:69:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;86:21:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1837:137:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;1253:578;;;;;;;;;;;;;;;;;;;;;;;;;;;;;824:169:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;439:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;168:73:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;230:53:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;348:56;402:1;394:10;;348:56;:::o;411:22::-;;;;;;;;;;;;;:::o;322:93:26:-;98:1;90:10;;146:16;;;;;;;;;;;;;;;;;;;207:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;295:21;;;;;;;;;;;;;;;;;;;369:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:93;:::o;68:84:31:-;120:32;;;;;;;;;;;;;;;;;;;68:84;:::o;1031:216:27:-;1133:12;281:1;273:10;;306:47:20;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1164:25:27;1176:6;1184:4;1164:11;:25::i;:::-;1157:32;;1199:41;1226:4;1232:7;1199:26;:41::i;:::-;1031:216;;;;;:::o;867:158::-;960:12;281:1;273:10;;306:47:20;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;991:27:27;1003:6;1011;991:11;:27::i;:::-;984:34;;867:158;;;;;:::o;113:20:19:-;;;;:::o;269:107:25:-;324:7;350:19;;343:26;;269:107;:::o;106:56:26:-;146:16;;;;;;;;;;;;;;;;;;;106:56;:::o;158:103:31:-;217:16;;;;;;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;158:103;:::o;506:494:20:-;597:4;613:16;;:::i;:::-;722:18;705:1;689:6;:13;:17;685:212;;;759:2;743:6;:13;:18;722:39;;809:6;802:13;;862:10;857:3;850:6;784:103;932:1;921:6;;;;;;;;;;;913:20;;;:80;;;;937:6;;;;;;;;;;;:20;;;958:7;975:4;982:5;989:3;937:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;913:80:20;906:87;;506:494;;;;;;;:::o;55:45:26:-;98:1;90:10;;55:45;:::o;289:53:27:-;340:1;332:10;;289:53;:::o;601:260::-;163:1:25;140:19;;:24;132:33;;;;;;;;684:13:27;:11;:13::i;:::-;797:4;764:38;;:4;:10;;;775:9;764:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;756:47;;;;;;;;820:4;814:3;;:10;;;;;;;;;;;;;;;;;;845:9;834:8;:20;;;;;;;601:260;;:::o;247:69:26:-;295:21;;;;;;;;;;;;;;;;;;;247:69;:::o;86:21:19:-;;;;;;;;;;;;;:::o;1837:137:27:-;402:1;394:10;;306:47:20;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1922:45:27;1949:8;;1959:7;1922:26;:45::i;:::-;1837:137;;:::o;1253:578::-;1331:12;1384:20;340:1;332:10;;306:47:20;317:10;329:5;350:1;336:16;;;;;;;;;;;;;;;;;;;;;;;;306:10;:47::i;:::-;298:56;;;;;;;;1356:8:27;;1366:6;1346:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1331:42;;1407:3;;;;;;;;;;;:9;;;1417:4;1407:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1384:38;;1465:1;1441:26;;:12;:26;;;;1433:35;;;;;;;;1538:4;1514:29;;:12;:29;;;;1510:156;;;1612:3;;;;;;;;;;;:19;;;1632:8;;1642:6;1650:4;1612:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1510:156;1676:3;;;;;;;;;;;:15;;;1692:4;1706:1;1676:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1759:3;;;;;;;;;;;:12;;;1772:4;1786:1;1759:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1817:6;1800:24;;;1811:4;1800:24;;;;;;;;;;;;;1253:578;;;;:::o;824:169:29:-;881:18;937:21;:19;:21::i;:::-;:39;;;977:7;937:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;911:75:29;;824:169;;;:::o;439:23:27:-;;;;:::o;168:73:26:-;98:1;90:10;;146:16;;;;;;;;;;;;;;;;;;;207:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;168:73;:::o;230:53:27:-;281:1;273:10;;230:53;:::o;1980:292::-;2051:12;2092:8;;2102:6;2082:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2075:34;;2154:1;2127:29;;:3;;;;;;;;;;;:9;;;2137:4;2127:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;2119:38;;;;;;;;2188:3;;;;;;;;;;;:19;;;2208:8;;2218:6;2226;2188:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:6;2244:21;;;2252:4;2244:21;;;;;;;;;;;;;1980:292;;;;:::o;2278:261::-;2365:22;2390:29;98:1:26;90:10;;146:16;;;;;;;;;;;;;;;;;;;207:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;295:21;;;;;;;;;;;;;;;;;;;369:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2390:7:27;:29::i;:::-;2365:54;;2429:3;;;;;;;;;;;:15;;;2445:5;2452:14;2429:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2493:14;2478:38;;;2517:5;2524:7;2478:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2278:261;;;:::o;487:96:25:-;163:1;140:19;;:24;132:33;;;;;;;;560:16;:14;:16::i;:::-;538:19;:38;;;;487:96::o;1021:200:29:-;1075:18;1105:20;1128:6;;;;;;;;;;;:13;;;217:16:31;;;;;;;;;;;;;;;;;;;120:32;;;;;;;;;;;;;;;;;;;207:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1128:37:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1105:60;;1201:12;1175:39;;1021:200;;:::o;2545:169:27:-;2599:7;2618:16;2637:3;;;;;;;;;;;:12;;;2650:4;2637:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2618:37;;2687:8;2672:29;;;2702:4;2672:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2665:42;;2545:169;;;;:::o;767:94:25:-;816:7;842:12;835:19;;767:94;:::o;166:2550:27:-;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity 0.4.18;\n\nimport \"../lib/ens/AbstractENS.sol\";\nimport \"../lib/ens/PublicResolver.sol\";\nimport \"./ENSConstants.sol\";\n\nimport \"../apps/AragonApp.sol\";\n\n\ncontract ENSSubdomainRegistrar is AragonApp, ENSConstants {\n    bytes32 constant public CREATE_NAME_ROLE = bytes32(1);\n    bytes32 constant public DELETE_NAME_ROLE = bytes32(2);\n    bytes32 constant public POINT_ROOTNODE_ROLE = bytes32(3);\n\n    AbstractENS public ens;\n    bytes32 public rootNode;\n\n    event NewName(bytes32 indexed node, bytes32 indexed label);\n    event DeleteName(bytes32 indexed node, bytes32 indexed label);\n\n    function initialize(AbstractENS _ens, bytes32 _rootNode) onlyInit public {\n        initialized();\n\n        // We need ownership to create subnodes\n        require(_ens.owner(_rootNode) == address(this));\n\n        ens = _ens;\n        rootNode = _rootNode;\n    }\n\n    function createName(bytes32 _label, address _owner) auth(CREATE_NAME_ROLE) external returns (bytes32 node) {\n        return _createName(_label, _owner);\n    }\n\n    function createNameAndPoint(bytes32 _label, address _target) auth(CREATE_NAME_ROLE) external returns (bytes32 node) {\n        node = _createName(_label, this);\n        _pointToResolverAndResolve(node, _target);\n    }\n\n    function deleteName(bytes32 _label) auth(DELETE_NAME_ROLE) external {\n        bytes32 node = keccak256(rootNode, _label);\n\n        address currentOwner = ens.owner(node);\n\n        require(currentOwner != address(0)); // fail if deleting unset name\n\n        if (currentOwner != address(this)) { // needs to reclaim ownership so it can set resolver\n            ens.setSubnodeOwner(rootNode, _label, this);\n        }\n\n        ens.setResolver(node, address(0)); // remove resolver so it ends resolving\n        ens.setOwner(node, address(0));\n\n        DeleteName(node, _label);\n    }\n\n    function pointRootNode(address _target) auth(POINT_ROOTNODE_ROLE) external {\n        _pointToResolverAndResolve(rootNode, _target);\n    }\n\n    function _createName(bytes32 _label, address _owner) internal returns (bytes32 node) {\n        node = keccak256(rootNode, _label);\n        require(ens.owner(node) == address(0)); // avoid name reset\n\n        ens.setSubnodeOwner(rootNode, _label, _owner);\n\n        NewName(node, _label);\n    }\n\n    function _pointToResolverAndResolve(bytes32 _node, address _target) internal {\n        address publicResolver = getAddr(PUBLIC_RESOLVER_NODE);\n        ens.setResolver(_node, publicResolver);\n\n        PublicResolver(publicResolver).setAddr(_node, _target);\n    }\n\n    function getAddr(bytes32 node) internal view returns (address) {\n        address resolver = ens.resolver(node);\n        return PublicResolver(resolver).addr(node);\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/ens/ENSSubdomainRegistrar.sol",
  "ast": {
    "attributes": {
      "absolutePath": "@aragon/os/contracts/ens/ENSSubdomainRegistrar.sol",
      "exportedSymbols": {
        "ENSSubdomainRegistrar": [
          7583
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.4",
            ".18"
          ]
        },
        "id": 7293,
        "name": "PragmaDirective",
        "src": "0:23:27"
      },
      {
        "attributes": {
          "SourceUnit": 10055,
          "absolutePath": "@aragon/os/contracts/lib/ens/AbstractENS.sol",
          "file": "../lib/ens/AbstractENS.sol",
          "scope": 7584,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7294,
        "name": "ImportDirective",
        "src": "25:36:27"
      },
      {
        "attributes": {
          "SourceUnit": 10701,
          "absolutePath": "@aragon/os/contracts/lib/ens/PublicResolver.sol",
          "file": "../lib/ens/PublicResolver.sol",
          "scope": 7584,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7295,
        "name": "ImportDirective",
        "src": "62:39:27"
      },
      {
        "attributes": {
          "SourceUnit": 7292,
          "absolutePath": "@aragon/os/contracts/ens/ENSConstants.sol",
          "file": "./ENSConstants.sol",
          "scope": 7584,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7296,
        "name": "ImportDirective",
        "src": "102:28:27"
      },
      {
        "attributes": {
          "SourceUnit": 6969,
          "absolutePath": "@aragon/os/contracts/apps/AragonApp.sol",
          "file": "../apps/AragonApp.sol",
          "scope": 7584,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7297,
        "name": "ImportDirective",
        "src": "132:31:27"
      },
      {
        "attributes": {
          "contractDependencies": [
            5905,
            6870,
            6968,
            7261,
            7291,
            7846,
            7877
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7583,
            7291,
            6968,
            7846,
            7877,
            5905,
            7261,
            6870
          ],
          "name": "ENSSubdomainRegistrar",
          "scope": 7584
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "AragonApp",
                  "referencedDeclaration": 6968,
                  "type": "contract AragonApp"
                },
                "id": 7298,
                "name": "UserDefinedTypeName",
                "src": "200:9:27"
              }
            ],
            "id": 7299,
            "name": "InheritanceSpecifier",
            "src": "200:9:27"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ENSConstants",
                  "referencedDeclaration": 7291,
                  "type": "contract ENSConstants"
                },
                "id": 7300,
                "name": "UserDefinedTypeName",
                "src": "211:12:27"
              }
            ],
            "id": 7301,
            "name": "InheritanceSpecifier",
            "src": "211:12:27"
          },
          {
            "attributes": {
              "constant": true,
              "name": "CREATE_NAME_ROLE",
              "scope": 7583,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 7302,
                "name": "ElementaryTypeName",
                "src": "230:7:27"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "type": "bytes32",
                  "type_conversion": true
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        }
                      ],
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "type": "type(bytes32)",
                      "value": "bytes32"
                    },
                    "id": 7303,
                    "name": "ElementaryTypeNameExpression",
                    "src": "273:7:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "31",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "number",
                      "type": "int_const 1",
                      "value": "1"
                    },
                    "id": 7304,
                    "name": "Literal",
                    "src": "281:1:27"
                  }
                ],
                "id": 7305,
                "name": "FunctionCall",
                "src": "273:10:27"
              }
            ],
            "id": 7306,
            "name": "VariableDeclaration",
            "src": "230:53:27"
          },
          {
            "attributes": {
              "constant": true,
              "name": "DELETE_NAME_ROLE",
              "scope": 7583,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 7307,
                "name": "ElementaryTypeName",
                "src": "289:7:27"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "type": "bytes32",
                  "type_conversion": true
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        }
                      ],
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "type": "type(bytes32)",
                      "value": "bytes32"
                    },
                    "id": 7308,
                    "name": "ElementaryTypeNameExpression",
                    "src": "332:7:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "32",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "number",
                      "type": "int_const 2",
                      "value": "2"
                    },
                    "id": 7309,
                    "name": "Literal",
                    "src": "340:1:27"
                  }
                ],
                "id": 7310,
                "name": "FunctionCall",
                "src": "332:10:27"
              }
            ],
            "id": 7311,
            "name": "VariableDeclaration",
            "src": "289:53:27"
          },
          {
            "attributes": {
              "constant": true,
              "name": "POINT_ROOTNODE_ROLE",
              "scope": 7583,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 7312,
                "name": "ElementaryTypeName",
                "src": "348:7:27"
              },
              {
                "attributes": {
                  "argumentTypes": null,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "isStructConstructorCall": false,
                  "lValueRequested": false,
                  "names": [
                    null
                  ],
                  "type": "bytes32",
                  "type_conversion": true
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_rational_3_by_1",
                          "typeString": "int_const 3"
                        }
                      ],
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "type": "type(bytes32)",
                      "value": "bytes32"
                    },
                    "id": 7313,
                    "name": "ElementaryTypeNameExpression",
                    "src": "394:7:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "hexvalue": "33",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "subdenomination": null,
                      "token": "number",
                      "type": "int_const 3",
                      "value": "3"
                    },
                    "id": 7314,
                    "name": "Literal",
                    "src": "402:1:27"
                  }
                ],
                "id": 7315,
                "name": "FunctionCall",
                "src": "394:10:27"
              }
            ],
            "id": 7316,
            "name": "VariableDeclaration",
            "src": "348:56:27"
          },
          {
            "attributes": {
              "constant": false,
              "name": "ens",
              "scope": 7583,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "contract AbstractENS",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "AbstractENS",
                  "referencedDeclaration": 10054,
                  "type": "contract AbstractENS"
                },
                "id": 7317,
                "name": "UserDefinedTypeName",
                "src": "411:11:27"
              }
            ],
            "id": 7318,
            "name": "VariableDeclaration",
            "src": "411:22:27"
          },
          {
            "attributes": {
              "constant": false,
              "name": "rootNode",
              "scope": 7583,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes32",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes32",
                  "type": "bytes32"
                },
                "id": 7319,
                "name": "ElementaryTypeName",
                "src": "439:7:27"
              }
            ],
            "id": 7320,
            "name": "VariableDeclaration",
            "src": "439:23:27"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NewName"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 7326,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7321,
                        "name": "ElementaryTypeName",
                        "src": "483:7:27"
                      }
                    ],
                    "id": 7322,
                    "name": "VariableDeclaration",
                    "src": "483:20:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "label",
                      "scope": 7326,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7323,
                        "name": "ElementaryTypeName",
                        "src": "505:7:27"
                      }
                    ],
                    "id": 7324,
                    "name": "VariableDeclaration",
                    "src": "505:21:27"
                  }
                ],
                "id": 7325,
                "name": "ParameterList",
                "src": "482:45:27"
              }
            ],
            "id": 7326,
            "name": "EventDefinition",
            "src": "469:59:27"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "DeleteName"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "node",
                      "scope": 7332,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7327,
                        "name": "ElementaryTypeName",
                        "src": "550:7:27"
                      }
                    ],
                    "id": 7328,
                    "name": "VariableDeclaration",
                    "src": "550:20:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "label",
                      "scope": 7332,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7329,
                        "name": "ElementaryTypeName",
                        "src": "572:7:27"
                      }
                    ],
                    "id": 7330,
                    "name": "VariableDeclaration",
                    "src": "572:21:27"
                  }
                ],
                "id": 7331,
                "name": "ParameterList",
                "src": "549:45:27"
              }
            ],
            "id": 7332,
            "name": "EventDefinition",
            "src": "533:62:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "initialize",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_ens",
                      "scope": 7364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract AbstractENS",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "AbstractENS",
                          "referencedDeclaration": 10054,
                          "type": "contract AbstractENS"
                        },
                        "id": 7333,
                        "name": "UserDefinedTypeName",
                        "src": "621:11:27"
                      }
                    ],
                    "id": 7334,
                    "name": "VariableDeclaration",
                    "src": "621:16:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_rootNode",
                      "scope": 7364,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7335,
                        "name": "ElementaryTypeName",
                        "src": "639:7:27"
                      }
                    ],
                    "id": 7336,
                    "name": "VariableDeclaration",
                    "src": "639:17:27"
                  }
                ],
                "id": 7337,
                "name": "ParameterList",
                "src": "620:37:27"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7340,
                "name": "ParameterList",
                "src": "674:0:27"
              },
              {
                "attributes": {
                  "arguments": [
                    null
                  ]
                },
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7232,
                      "type": "modifier ()",
                      "value": "onlyInit"
                    },
                    "id": 7338,
                    "name": "Identifier",
                    "src": "658:8:27"
                  }
                ],
                "id": 7339,
                "name": "ModifierInvocation",
                "src": "658:8:27"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7251,
                              "type": "function ()",
                              "value": "initialized"
                            },
                            "id": 7341,
                            "name": "Identifier",
                            "src": "684:11:27"
                          }
                        ],
                        "id": 7342,
                        "name": "FunctionCall",
                        "src": "684:13:27"
                      }
                    ],
                    "id": 7343,
                    "name": "ExpressionStatement",
                    "src": "684:13:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12593,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7344,
                            "name": "Identifier",
                            "src": "756:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "owner",
                                      "referencedDeclaration": 9983,
                                      "type": "function (bytes32) view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7334,
                                          "type": "contract AbstractENS",
                                          "value": "_ens"
                                        },
                                        "id": 7345,
                                        "name": "Identifier",
                                        "src": "764:4:27"
                                      }
                                    ],
                                    "id": 7346,
                                    "name": "MemberAccess",
                                    "src": "764:10:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7336,
                                      "type": "bytes32",
                                      "value": "_rootNode"
                                    },
                                    "id": 7347,
                                    "name": "Identifier",
                                    "src": "775:9:27"
                                  }
                                ],
                                "id": 7348,
                                "name": "FunctionCall",
                                "src": "764:21:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_contract$_ENSSubdomainRegistrar_$7583",
                                          "typeString": "contract ENSSubdomainRegistrar"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 7349,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "789:7:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12631,
                                      "type": "contract ENSSubdomainRegistrar",
                                      "value": "this"
                                    },
                                    "id": 7350,
                                    "name": "Identifier",
                                    "src": "797:4:27"
                                  }
                                ],
                                "id": 7351,
                                "name": "FunctionCall",
                                "src": "789:13:27"
                              }
                            ],
                            "id": 7352,
                            "name": "BinaryOperation",
                            "src": "764:38:27"
                          }
                        ],
                        "id": 7353,
                        "name": "FunctionCall",
                        "src": "756:47:27"
                      }
                    ],
                    "id": 7354,
                    "name": "ExpressionStatement",
                    "src": "756:47:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract AbstractENS"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7318,
                              "type": "contract AbstractENS",
                              "value": "ens"
                            },
                            "id": 7355,
                            "name": "Identifier",
                            "src": "814:3:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7334,
                              "type": "contract AbstractENS",
                              "value": "_ens"
                            },
                            "id": 7356,
                            "name": "Identifier",
                            "src": "820:4:27"
                          }
                        ],
                        "id": 7357,
                        "name": "Assignment",
                        "src": "814:10:27"
                      }
                    ],
                    "id": 7358,
                    "name": "ExpressionStatement",
                    "src": "814:10:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7320,
                              "type": "bytes32",
                              "value": "rootNode"
                            },
                            "id": 7359,
                            "name": "Identifier",
                            "src": "834:8:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7336,
                              "type": "bytes32",
                              "value": "_rootNode"
                            },
                            "id": 7360,
                            "name": "Identifier",
                            "src": "845:9:27"
                          }
                        ],
                        "id": 7361,
                        "name": "Assignment",
                        "src": "834:20:27"
                      }
                    ],
                    "id": 7362,
                    "name": "ExpressionStatement",
                    "src": "834:20:27"
                  }
                ],
                "id": 7363,
                "name": "Block",
                "src": "674:187:27"
              }
            ],
            "id": 7364,
            "name": "FunctionDefinition",
            "src": "601:260:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "createName",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_label",
                      "scope": 7382,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7365,
                        "name": "ElementaryTypeName",
                        "src": "887:7:27"
                      }
                    ],
                    "id": 7366,
                    "name": "VariableDeclaration",
                    "src": "887:14:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_owner",
                      "scope": 7382,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7367,
                        "name": "ElementaryTypeName",
                        "src": "903:7:27"
                      }
                    ],
                    "id": 7368,
                    "name": "VariableDeclaration",
                    "src": "903:14:27"
                  }
                ],
                "id": 7369,
                "name": "ParameterList",
                "src": "886:32:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 7382,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7373,
                        "name": "ElementaryTypeName",
                        "src": "960:7:27"
                      }
                    ],
                    "id": 7374,
                    "name": "VariableDeclaration",
                    "src": "960:12:27"
                  }
                ],
                "id": 7375,
                "name": "ParameterList",
                "src": "959:14:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6903,
                      "type": "modifier (bytes32)",
                      "value": "auth"
                    },
                    "id": 7370,
                    "name": "Identifier",
                    "src": "919:4:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7306,
                      "type": "bytes32",
                      "value": "CREATE_NAME_ROLE"
                    },
                    "id": 7371,
                    "name": "Identifier",
                    "src": "924:16:27"
                  }
                ],
                "id": 7372,
                "name": "ModifierInvocation",
                "src": "919:22:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7375
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7531,
                              "type": "function (bytes32,address) returns (bytes32)",
                              "value": "_createName"
                            },
                            "id": 7376,
                            "name": "Identifier",
                            "src": "991:11:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7366,
                              "type": "bytes32",
                              "value": "_label"
                            },
                            "id": 7377,
                            "name": "Identifier",
                            "src": "1003:6:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7368,
                              "type": "address",
                              "value": "_owner"
                            },
                            "id": 7378,
                            "name": "Identifier",
                            "src": "1011:6:27"
                          }
                        ],
                        "id": 7379,
                        "name": "FunctionCall",
                        "src": "991:27:27"
                      }
                    ],
                    "id": 7380,
                    "name": "Return",
                    "src": "984:34:27"
                  }
                ],
                "id": 7381,
                "name": "Block",
                "src": "974:51:27"
              }
            ],
            "id": 7382,
            "name": "FunctionDefinition",
            "src": "867:158:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "createNameAndPoint",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_label",
                      "scope": 7407,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7383,
                        "name": "ElementaryTypeName",
                        "src": "1059:7:27"
                      }
                    ],
                    "id": 7384,
                    "name": "VariableDeclaration",
                    "src": "1059:14:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_target",
                      "scope": 7407,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7385,
                        "name": "ElementaryTypeName",
                        "src": "1075:7:27"
                      }
                    ],
                    "id": 7386,
                    "name": "VariableDeclaration",
                    "src": "1075:15:27"
                  }
                ],
                "id": 7387,
                "name": "ParameterList",
                "src": "1058:33:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 7407,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7391,
                        "name": "ElementaryTypeName",
                        "src": "1133:7:27"
                      }
                    ],
                    "id": 7392,
                    "name": "VariableDeclaration",
                    "src": "1133:12:27"
                  }
                ],
                "id": 7393,
                "name": "ParameterList",
                "src": "1132:14:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6903,
                      "type": "modifier (bytes32)",
                      "value": "auth"
                    },
                    "id": 7388,
                    "name": "Identifier",
                    "src": "1092:4:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7306,
                      "type": "bytes32",
                      "value": "CREATE_NAME_ROLE"
                    },
                    "id": 7389,
                    "name": "Identifier",
                    "src": "1097:16:27"
                  }
                ],
                "id": 7390,
                "name": "ModifierInvocation",
                "src": "1092:22:27"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7392,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7394,
                            "name": "Identifier",
                            "src": "1157:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_ENSSubdomainRegistrar_$7583",
                                      "typeString": "contract ENSSubdomainRegistrar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7531,
                                  "type": "function (bytes32,address) returns (bytes32)",
                                  "value": "_createName"
                                },
                                "id": 7395,
                                "name": "Identifier",
                                "src": "1164:11:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7384,
                                  "type": "bytes32",
                                  "value": "_label"
                                },
                                "id": 7396,
                                "name": "Identifier",
                                "src": "1176:6:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12631,
                                  "type": "contract ENSSubdomainRegistrar",
                                  "value": "this"
                                },
                                "id": 7397,
                                "name": "Identifier",
                                "src": "1184:4:27"
                              }
                            ],
                            "id": 7398,
                            "name": "FunctionCall",
                            "src": "1164:25:27"
                          }
                        ],
                        "id": 7399,
                        "name": "Assignment",
                        "src": "1157:32:27"
                      }
                    ],
                    "id": 7400,
                    "name": "ExpressionStatement",
                    "src": "1157:32:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7560,
                              "type": "function (bytes32,address)",
                              "value": "_pointToResolverAndResolve"
                            },
                            "id": 7401,
                            "name": "Identifier",
                            "src": "1199:26:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7392,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7402,
                            "name": "Identifier",
                            "src": "1226:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7386,
                              "type": "address",
                              "value": "_target"
                            },
                            "id": 7403,
                            "name": "Identifier",
                            "src": "1232:7:27"
                          }
                        ],
                        "id": 7404,
                        "name": "FunctionCall",
                        "src": "1199:41:27"
                      }
                    ],
                    "id": 7405,
                    "name": "ExpressionStatement",
                    "src": "1199:41:27"
                  }
                ],
                "id": 7406,
                "name": "Block",
                "src": "1147:100:27"
              }
            ],
            "id": 7407,
            "name": "FunctionDefinition",
            "src": "1031:216:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "deleteName",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_label",
                      "scope": 7476,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7408,
                        "name": "ElementaryTypeName",
                        "src": "1273:7:27"
                      }
                    ],
                    "id": 7409,
                    "name": "VariableDeclaration",
                    "src": "1273:14:27"
                  }
                ],
                "id": 7410,
                "name": "ParameterList",
                "src": "1272:16:27"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7414,
                "name": "ParameterList",
                "src": "1321:0:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6903,
                      "type": "modifier (bytes32)",
                      "value": "auth"
                    },
                    "id": 7411,
                    "name": "Identifier",
                    "src": "1289:4:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7311,
                      "type": "bytes32",
                      "value": "DELETE_NAME_ROLE"
                    },
                    "id": 7412,
                    "name": "Identifier",
                    "src": "1294:16:27"
                  }
                ],
                "id": 7413,
                "name": "ModifierInvocation",
                "src": "1289:22:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7416
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "node",
                          "scope": 7476,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 7415,
                            "name": "ElementaryTypeName",
                            "src": "1331:7:27"
                          }
                        ],
                        "id": 7416,
                        "name": "VariableDeclaration",
                        "src": "1331:12:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12584,
                              "type": "function () pure returns (bytes32)",
                              "value": "keccak256"
                            },
                            "id": 7417,
                            "name": "Identifier",
                            "src": "1346:9:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7320,
                              "type": "bytes32",
                              "value": "rootNode"
                            },
                            "id": 7418,
                            "name": "Identifier",
                            "src": "1356:8:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7409,
                              "type": "bytes32",
                              "value": "_label"
                            },
                            "id": 7419,
                            "name": "Identifier",
                            "src": "1366:6:27"
                          }
                        ],
                        "id": 7420,
                        "name": "FunctionCall",
                        "src": "1346:27:27"
                      }
                    ],
                    "id": 7421,
                    "name": "VariableDeclarationStatement",
                    "src": "1331:42:27"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7423
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "currentOwner",
                          "scope": 7476,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "address",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 7422,
                            "name": "ElementaryTypeName",
                            "src": "1384:7:27"
                          }
                        ],
                        "id": 7423,
                        "name": "VariableDeclaration",
                        "src": "1384:20:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "address",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "owner",
                              "referencedDeclaration": 9983,
                              "type": "function (bytes32) view external returns (address)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7318,
                                  "type": "contract AbstractENS",
                                  "value": "ens"
                                },
                                "id": 7424,
                                "name": "Identifier",
                                "src": "1407:3:27"
                              }
                            ],
                            "id": 7425,
                            "name": "MemberAccess",
                            "src": "1407:9:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7416,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7426,
                            "name": "Identifier",
                            "src": "1417:4:27"
                          }
                        ],
                        "id": 7427,
                        "name": "FunctionCall",
                        "src": "1407:15:27"
                      }
                    ],
                    "id": 7428,
                    "name": "VariableDeclarationStatement",
                    "src": "1384:38:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12593,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7429,
                            "name": "Identifier",
                            "src": "1433:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7423,
                                  "type": "address",
                                  "value": "currentOwner"
                                },
                                "id": 7430,
                                "name": "Identifier",
                                "src": "1441:12:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 7431,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1457:7:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 7432,
                                    "name": "Literal",
                                    "src": "1465:1:27"
                                  }
                                ],
                                "id": 7433,
                                "name": "FunctionCall",
                                "src": "1457:10:27"
                              }
                            ],
                            "id": 7434,
                            "name": "BinaryOperation",
                            "src": "1441:26:27"
                          }
                        ],
                        "id": 7435,
                        "name": "FunctionCall",
                        "src": "1433:35:27"
                      }
                    ],
                    "id": 7436,
                    "name": "ExpressionStatement",
                    "src": "1433:35:27"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7423,
                              "type": "address",
                              "value": "currentOwner"
                            },
                            "id": 7437,
                            "name": "Identifier",
                            "src": "1514:12:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_ENSSubdomainRegistrar_$7583",
                                      "typeString": "contract ENSSubdomainRegistrar"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 7438,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1530:7:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12631,
                                  "type": "contract ENSSubdomainRegistrar",
                                  "value": "this"
                                },
                                "id": 7439,
                                "name": "Identifier",
                                "src": "1538:4:27"
                              }
                            ],
                            "id": 7440,
                            "name": "FunctionCall",
                            "src": "1530:13:27"
                          }
                        ],
                        "id": 7441,
                        "name": "BinaryOperation",
                        "src": "1514:29:27"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_contract$_ENSSubdomainRegistrar_$7583",
                                          "typeString": "contract ENSSubdomainRegistrar"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "setSubnodeOwner",
                                      "referencedDeclaration": 10013,
                                      "type": "function (bytes32,bytes32,address) external"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7318,
                                          "type": "contract AbstractENS",
                                          "value": "ens"
                                        },
                                        "id": 7442,
                                        "name": "Identifier",
                                        "src": "1612:3:27"
                                      }
                                    ],
                                    "id": 7444,
                                    "name": "MemberAccess",
                                    "src": "1612:19:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7320,
                                      "type": "bytes32",
                                      "value": "rootNode"
                                    },
                                    "id": 7445,
                                    "name": "Identifier",
                                    "src": "1632:8:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7409,
                                      "type": "bytes32",
                                      "value": "_label"
                                    },
                                    "id": 7446,
                                    "name": "Identifier",
                                    "src": "1642:6:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 12631,
                                      "type": "contract ENSSubdomainRegistrar",
                                      "value": "this"
                                    },
                                    "id": 7447,
                                    "name": "Identifier",
                                    "src": "1650:4:27"
                                  }
                                ],
                                "id": 7448,
                                "name": "FunctionCall",
                                "src": "1612:43:27"
                              }
                            ],
                            "id": 7449,
                            "name": "ExpressionStatement",
                            "src": "1612:43:27"
                          }
                        ],
                        "id": 7450,
                        "name": "Block",
                        "src": "1545:121:27"
                      }
                    ],
                    "id": 7451,
                    "name": "IfStatement",
                    "src": "1510:156:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setResolver",
                              "referencedDeclaration": 10020,
                              "type": "function (bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7318,
                                  "type": "contract AbstractENS",
                                  "value": "ens"
                                },
                                "id": 7452,
                                "name": "Identifier",
                                "src": "1676:3:27"
                              }
                            ],
                            "id": 7454,
                            "name": "MemberAccess",
                            "src": "1676:15:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7416,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7455,
                            "name": "Identifier",
                            "src": "1692:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 7456,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1698:7:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7457,
                                "name": "Literal",
                                "src": "1706:1:27"
                              }
                            ],
                            "id": 7458,
                            "name": "FunctionCall",
                            "src": "1698:10:27"
                          }
                        ],
                        "id": 7459,
                        "name": "FunctionCall",
                        "src": "1676:33:27"
                      }
                    ],
                    "id": 7460,
                    "name": "ExpressionStatement",
                    "src": "1676:33:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setOwner",
                              "referencedDeclaration": 10004,
                              "type": "function (bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7318,
                                  "type": "contract AbstractENS",
                                  "value": "ens"
                                },
                                "id": 7461,
                                "name": "Identifier",
                                "src": "1759:3:27"
                              }
                            ],
                            "id": 7463,
                            "name": "MemberAccess",
                            "src": "1759:12:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7416,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7464,
                            "name": "Identifier",
                            "src": "1772:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "address",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)",
                                  "value": "address"
                                },
                                "id": 7465,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1778:7:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7466,
                                "name": "Literal",
                                "src": "1786:1:27"
                              }
                            ],
                            "id": 7467,
                            "name": "FunctionCall",
                            "src": "1778:10:27"
                          }
                        ],
                        "id": 7468,
                        "name": "FunctionCall",
                        "src": "1759:30:27"
                      }
                    ],
                    "id": 7469,
                    "name": "ExpressionStatement",
                    "src": "1759:30:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7332,
                              "type": "function (bytes32,bytes32)",
                              "value": "DeleteName"
                            },
                            "id": 7470,
                            "name": "Identifier",
                            "src": "1800:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7416,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7471,
                            "name": "Identifier",
                            "src": "1811:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7409,
                              "type": "bytes32",
                              "value": "_label"
                            },
                            "id": 7472,
                            "name": "Identifier",
                            "src": "1817:6:27"
                          }
                        ],
                        "id": 7473,
                        "name": "FunctionCall",
                        "src": "1800:24:27"
                      }
                    ],
                    "id": 7474,
                    "name": "ExpressionStatement",
                    "src": "1800:24:27"
                  }
                ],
                "id": 7475,
                "name": "Block",
                "src": "1321:510:27"
              }
            ],
            "id": 7476,
            "name": "FunctionDefinition",
            "src": "1253:578:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "name": "pointRootNode",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_target",
                      "scope": 7490,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7477,
                        "name": "ElementaryTypeName",
                        "src": "1860:7:27"
                      }
                    ],
                    "id": 7478,
                    "name": "VariableDeclaration",
                    "src": "1860:15:27"
                  }
                ],
                "id": 7479,
                "name": "ParameterList",
                "src": "1859:17:27"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7483,
                "name": "ParameterList",
                "src": "1912:0:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6903,
                      "type": "modifier (bytes32)",
                      "value": "auth"
                    },
                    "id": 7480,
                    "name": "Identifier",
                    "src": "1877:4:27"
                  },
                  {
                    "attributes": {
                      "argumentTypes": null,
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 7316,
                      "type": "bytes32",
                      "value": "POINT_ROOTNODE_ROLE"
                    },
                    "id": 7481,
                    "name": "Identifier",
                    "src": "1882:19:27"
                  }
                ],
                "id": 7482,
                "name": "ModifierInvocation",
                "src": "1877:25:27"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7560,
                              "type": "function (bytes32,address)",
                              "value": "_pointToResolverAndResolve"
                            },
                            "id": 7484,
                            "name": "Identifier",
                            "src": "1922:26:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7320,
                              "type": "bytes32",
                              "value": "rootNode"
                            },
                            "id": 7485,
                            "name": "Identifier",
                            "src": "1949:8:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7478,
                              "type": "address",
                              "value": "_target"
                            },
                            "id": 7486,
                            "name": "Identifier",
                            "src": "1959:7:27"
                          }
                        ],
                        "id": 7487,
                        "name": "FunctionCall",
                        "src": "1922:45:27"
                      }
                    ],
                    "id": 7488,
                    "name": "ExpressionStatement",
                    "src": "1922:45:27"
                  }
                ],
                "id": 7489,
                "name": "Block",
                "src": "1912:62:27"
              }
            ],
            "id": 7490,
            "name": "FunctionDefinition",
            "src": "1837:137:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "_createName",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_label",
                      "scope": 7531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7491,
                        "name": "ElementaryTypeName",
                        "src": "2001:7:27"
                      }
                    ],
                    "id": 7492,
                    "name": "VariableDeclaration",
                    "src": "2001:14:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_owner",
                      "scope": 7531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7493,
                        "name": "ElementaryTypeName",
                        "src": "2017:7:27"
                      }
                    ],
                    "id": 7494,
                    "name": "VariableDeclaration",
                    "src": "2017:14:27"
                  }
                ],
                "id": 7495,
                "name": "ParameterList",
                "src": "2000:32:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 7531,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7496,
                        "name": "ElementaryTypeName",
                        "src": "2051:7:27"
                      }
                    ],
                    "id": 7497,
                    "name": "VariableDeclaration",
                    "src": "2051:12:27"
                  }
                ],
                "id": 7498,
                "name": "ParameterList",
                "src": "2050:14:27"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7497,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7499,
                            "name": "Identifier",
                            "src": "2075:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12584,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 7500,
                                "name": "Identifier",
                                "src": "2082:9:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7320,
                                  "type": "bytes32",
                                  "value": "rootNode"
                                },
                                "id": 7501,
                                "name": "Identifier",
                                "src": "2092:8:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7492,
                                  "type": "bytes32",
                                  "value": "_label"
                                },
                                "id": 7502,
                                "name": "Identifier",
                                "src": "2102:6:27"
                              }
                            ],
                            "id": 7503,
                            "name": "FunctionCall",
                            "src": "2082:27:27"
                          }
                        ],
                        "id": 7504,
                        "name": "Assignment",
                        "src": "2075:34:27"
                      }
                    ],
                    "id": 7505,
                    "name": "ExpressionStatement",
                    "src": "2075:34:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 12593,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7506,
                            "name": "Identifier",
                            "src": "2119:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "owner",
                                      "referencedDeclaration": 9983,
                                      "type": "function (bytes32) view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7318,
                                          "type": "contract AbstractENS",
                                          "value": "ens"
                                        },
                                        "id": 7507,
                                        "name": "Identifier",
                                        "src": "2127:3:27"
                                      }
                                    ],
                                    "id": 7508,
                                    "name": "MemberAccess",
                                    "src": "2127:9:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7497,
                                      "type": "bytes32",
                                      "value": "node"
                                    },
                                    "id": 7509,
                                    "name": "Identifier",
                                    "src": "2137:4:27"
                                  }
                                ],
                                "id": 7510,
                                "name": "FunctionCall",
                                "src": "2127:15:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "address",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_0_by_1",
                                          "typeString": "int_const 0"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 7511,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "2146:7:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 7512,
                                    "name": "Literal",
                                    "src": "2154:1:27"
                                  }
                                ],
                                "id": 7513,
                                "name": "FunctionCall",
                                "src": "2146:10:27"
                              }
                            ],
                            "id": 7514,
                            "name": "BinaryOperation",
                            "src": "2127:29:27"
                          }
                        ],
                        "id": 7515,
                        "name": "FunctionCall",
                        "src": "2119:38:27"
                      }
                    ],
                    "id": 7516,
                    "name": "ExpressionStatement",
                    "src": "2119:38:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setSubnodeOwner",
                              "referencedDeclaration": 10013,
                              "type": "function (bytes32,bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7318,
                                  "type": "contract AbstractENS",
                                  "value": "ens"
                                },
                                "id": 7517,
                                "name": "Identifier",
                                "src": "2188:3:27"
                              }
                            ],
                            "id": 7519,
                            "name": "MemberAccess",
                            "src": "2188:19:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7320,
                              "type": "bytes32",
                              "value": "rootNode"
                            },
                            "id": 7520,
                            "name": "Identifier",
                            "src": "2208:8:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7492,
                              "type": "bytes32",
                              "value": "_label"
                            },
                            "id": 7521,
                            "name": "Identifier",
                            "src": "2218:6:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7494,
                              "type": "address",
                              "value": "_owner"
                            },
                            "id": 7522,
                            "name": "Identifier",
                            "src": "2226:6:27"
                          }
                        ],
                        "id": 7523,
                        "name": "FunctionCall",
                        "src": "2188:45:27"
                      }
                    ],
                    "id": 7524,
                    "name": "ExpressionStatement",
                    "src": "2188:45:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7326,
                              "type": "function (bytes32,bytes32)",
                              "value": "NewName"
                            },
                            "id": 7525,
                            "name": "Identifier",
                            "src": "2244:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7497,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7526,
                            "name": "Identifier",
                            "src": "2252:4:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7492,
                              "type": "bytes32",
                              "value": "_label"
                            },
                            "id": 7527,
                            "name": "Identifier",
                            "src": "2258:6:27"
                          }
                        ],
                        "id": 7528,
                        "name": "FunctionCall",
                        "src": "2244:21:27"
                      }
                    ],
                    "id": 7529,
                    "name": "ExpressionStatement",
                    "src": "2244:21:27"
                  }
                ],
                "id": 7530,
                "name": "Block",
                "src": "2065:207:27"
              }
            ],
            "id": 7531,
            "name": "FunctionDefinition",
            "src": "1980:292:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "_pointToResolverAndResolve",
              "payable": false,
              "scope": 7583,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_node",
                      "scope": 7560,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7532,
                        "name": "ElementaryTypeName",
                        "src": "2314:7:27"
                      }
                    ],
                    "id": 7533,
                    "name": "VariableDeclaration",
                    "src": "2314:13:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_target",
                      "scope": 7560,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7534,
                        "name": "ElementaryTypeName",
                        "src": "2329:7:27"
                      }
                    ],
                    "id": 7535,
                    "name": "VariableDeclaration",
                    "src": "2329:15:27"
                  }
                ],
                "id": 7536,
                "name": "ParameterList",
                "src": "2313:32:27"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 7537,
                "name": "ParameterList",
                "src": "2355:0:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7539
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "publicResolver",
                          "scope": 7560,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "address",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 7538,
                            "name": "ElementaryTypeName",
                            "src": "2365:7:27"
                          }
                        ],
                        "id": 7539,
                        "name": "VariableDeclaration",
                        "src": "2365:22:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "address",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7582,
                              "type": "function (bytes32) view returns (address)",
                              "value": "getAddr"
                            },
                            "id": 7540,
                            "name": "Identifier",
                            "src": "2390:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7290,
                              "type": "bytes32",
                              "value": "PUBLIC_RESOLVER_NODE"
                            },
                            "id": 7541,
                            "name": "Identifier",
                            "src": "2398:20:27"
                          }
                        ],
                        "id": 7542,
                        "name": "FunctionCall",
                        "src": "2390:29:27"
                      }
                    ],
                    "id": 7543,
                    "name": "VariableDeclarationStatement",
                    "src": "2365:54:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setResolver",
                              "referencedDeclaration": 10020,
                              "type": "function (bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7318,
                                  "type": "contract AbstractENS",
                                  "value": "ens"
                                },
                                "id": 7544,
                                "name": "Identifier",
                                "src": "2429:3:27"
                              }
                            ],
                            "id": 7546,
                            "name": "MemberAccess",
                            "src": "2429:15:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7533,
                              "type": "bytes32",
                              "value": "_node"
                            },
                            "id": 7547,
                            "name": "Identifier",
                            "src": "2445:5:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7539,
                              "type": "address",
                              "value": "publicResolver"
                            },
                            "id": 7548,
                            "name": "Identifier",
                            "src": "2452:14:27"
                          }
                        ],
                        "id": 7549,
                        "name": "FunctionCall",
                        "src": "2429:38:27"
                      }
                    ],
                    "id": 7550,
                    "name": "ExpressionStatement",
                    "src": "2429:38:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "setAddr",
                              "referencedDeclaration": 10429,
                              "type": "function (bytes32,address) external"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract PublicResolver",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10700,
                                      "type": "type(contract PublicResolver)",
                                      "value": "PublicResolver"
                                    },
                                    "id": 7551,
                                    "name": "Identifier",
                                    "src": "2478:14:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7539,
                                      "type": "address",
                                      "value": "publicResolver"
                                    },
                                    "id": 7552,
                                    "name": "Identifier",
                                    "src": "2493:14:27"
                                  }
                                ],
                                "id": 7553,
                                "name": "FunctionCall",
                                "src": "2478:30:27"
                              }
                            ],
                            "id": 7554,
                            "name": "MemberAccess",
                            "src": "2478:38:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7533,
                              "type": "bytes32",
                              "value": "_node"
                            },
                            "id": 7555,
                            "name": "Identifier",
                            "src": "2517:5:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7535,
                              "type": "address",
                              "value": "_target"
                            },
                            "id": 7556,
                            "name": "Identifier",
                            "src": "2524:7:27"
                          }
                        ],
                        "id": 7557,
                        "name": "FunctionCall",
                        "src": "2478:54:27"
                      }
                    ],
                    "id": 7558,
                    "name": "ExpressionStatement",
                    "src": "2478:54:27"
                  }
                ],
                "id": 7559,
                "name": "Block",
                "src": "2355:184:27"
              }
            ],
            "id": 7560,
            "name": "FunctionDefinition",
            "src": "2278:261:27"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getAddr",
              "payable": false,
              "scope": 7583,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "internal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "node",
                      "scope": 7582,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7561,
                        "name": "ElementaryTypeName",
                        "src": "2562:7:27"
                      }
                    ],
                    "id": 7562,
                    "name": "VariableDeclaration",
                    "src": "2562:12:27"
                  }
                ],
                "id": 7563,
                "name": "ParameterList",
                "src": "2561:14:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 7582,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 7564,
                        "name": "ElementaryTypeName",
                        "src": "2599:7:27"
                      }
                    ],
                    "id": 7565,
                    "name": "VariableDeclaration",
                    "src": "2599:7:27"
                  }
                ],
                "id": 7566,
                "name": "ParameterList",
                "src": "2598:9:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7568
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "resolver",
                          "scope": 7582,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "address",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "type": "address"
                            },
                            "id": 7567,
                            "name": "ElementaryTypeName",
                            "src": "2618:7:27"
                          }
                        ],
                        "id": 7568,
                        "name": "VariableDeclaration",
                        "src": "2618:16:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "address",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "resolver",
                              "referencedDeclaration": 9990,
                              "type": "function (bytes32) view external returns (address)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7318,
                                  "type": "contract AbstractENS",
                                  "value": "ens"
                                },
                                "id": 7569,
                                "name": "Identifier",
                                "src": "2637:3:27"
                              }
                            ],
                            "id": 7570,
                            "name": "MemberAccess",
                            "src": "2637:12:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7562,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7571,
                            "name": "Identifier",
                            "src": "2650:4:27"
                          }
                        ],
                        "id": 7572,
                        "name": "FunctionCall",
                        "src": "2637:18:27"
                      }
                    ],
                    "id": 7573,
                    "name": "VariableDeclarationStatement",
                    "src": "2618:37:27"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7566
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "address",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "addr",
                              "referencedDeclaration": 10406,
                              "type": "function (bytes32) view external returns (address)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract PublicResolver",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10700,
                                      "type": "type(contract PublicResolver)",
                                      "value": "PublicResolver"
                                    },
                                    "id": 7574,
                                    "name": "Identifier",
                                    "src": "2672:14:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7568,
                                      "type": "address",
                                      "value": "resolver"
                                    },
                                    "id": 7575,
                                    "name": "Identifier",
                                    "src": "2687:8:27"
                                  }
                                ],
                                "id": 7576,
                                "name": "FunctionCall",
                                "src": "2672:24:27"
                              }
                            ],
                            "id": 7577,
                            "name": "MemberAccess",
                            "src": "2672:29:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7562,
                              "type": "bytes32",
                              "value": "node"
                            },
                            "id": 7578,
                            "name": "Identifier",
                            "src": "2702:4:27"
                          }
                        ],
                        "id": 7579,
                        "name": "FunctionCall",
                        "src": "2672:35:27"
                      }
                    ],
                    "id": 7580,
                    "name": "Return",
                    "src": "2665:42:27"
                  }
                ],
                "id": 7581,
                "name": "Block",
                "src": "2608:106:27"
              }
            ],
            "id": 7582,
            "name": "FunctionDefinition",
            "src": "2545:169:27"
          }
        ],
        "id": 7583,
        "name": "ContractDefinition",
        "src": "166:2550:27"
      }
    ],
    "id": 7584,
    "name": "SourceUnit",
    "src": "0:2717:27"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-03-14T08:41:25.090Z"
}