diff --git a/.github/actions/bulletin/action.yml b/.github/actions/bulletin/action.yml index 35349f4..145ee1e 100644 --- a/.github/actions/bulletin/action.yml +++ b/.github/actions/bulletin/action.yml @@ -8,6 +8,10 @@ inputs: bulletin-rpc: description: 'Bulletin chain WebSocket RPC endpoint (default: CLI built-in)' required: false + env: + description: 'DotNS environment used by cache/store operations' + required: false + default: 'paseo-v2' build-path: description: 'Path to the build directory to upload' required: false @@ -68,6 +72,7 @@ runs: rm -f "$RESULT_FILE" env: DOTNS_MNEMONIC: ${{ inputs.mnemonic }} + DOTNS_ENV: ${{ inputs.env }} BULLETIN_RPC: ${{ inputs.bulletin-rpc }} CI: "true" FORCE_COLOR: "0" @@ -122,6 +127,7 @@ runs: exit 1 env: DOTNS_MNEMONIC: ${{ inputs.mnemonic }} + DOTNS_ENV: ${{ inputs.env }} BULLETIN_RPC: ${{ inputs.bulletin-rpc }} BUILD_PATH: ${{ inputs.build-path }} UPLOAD_CONCURRENCY: ${{ inputs.upload-concurrency }} diff --git a/.github/actions/dotns/action.yml b/.github/actions/dotns/action.yml index 00d645e..25c3a97 100644 --- a/.github/actions/dotns/action.yml +++ b/.github/actions/dotns/action.yml @@ -8,6 +8,10 @@ inputs: rpc: description: 'WebSocket RPC endpoint (default: CLI built-in)' required: false + env: + description: 'DotNS environment' + required: false + default: 'paseo-v2' basename: description: 'Base domain without .dot' required: true @@ -59,6 +63,7 @@ runs: fi env: BASENAME: ${{ inputs.basename }} + DOTNS_ENV: ${{ inputs.env }} - name: Fail if base domain not registered if: steps.check-base.outputs.exists != 'true' && inputs.register-base != 'true' @@ -76,10 +81,11 @@ runs: echo "To have this workflow register it automatically, set register-base: true." echo "" echo "If registration requires Proof-of-Personhood, ensure your account has" - echo "the correct POP status first. See: dotns pop set --help" + echo "the correct POP status first. See: dotns pop status --help" exit 1 env: BASENAME: ${{ inputs.basename }} + DOTNS_ENV: ${{ inputs.env }} - name: Register base domain if: steps.check-base.outputs.exists != 'true' && inputs.register-base == 'true' @@ -106,13 +112,14 @@ runs: echo "" echo "To fix this:" echo " 1. Check your POP status: dotns pop status" - echo " 2. Set POP if needed: dotns pop set --help" + echo " 2. Complete personhood verification outside DotNS if needed." echo " 3. Then re-run this workflow." echo "" echo "You can also register manually at https://dotns.paseo.li" exit 1 env: DOTNS_MNEMONIC: ${{ inputs.mnemonic }} + DOTNS_ENV: ${{ inputs.env }} BASENAME: ${{ inputs.basename }} MAX_RETRIES: ${{ inputs.max-retries }} RETRY_DELAY: ${{ inputs.retry-delay }} @@ -144,6 +151,7 @@ runs: env: SUBNAME: ${{ inputs.subname }} BASENAME: ${{ inputs.basename }} + DOTNS_ENV: ${{ inputs.env }} - name: Register subname if: inputs.mode == 'preview' && steps.check-subname.outputs.exists != 'true' @@ -195,6 +203,7 @@ runs: exit 1 env: DOTNS_MNEMONIC: ${{ inputs.mnemonic }} + DOTNS_ENV: ${{ inputs.env }} SUBNAME: ${{ inputs.subname }} BASENAME: ${{ inputs.basename }} MAX_RETRIES: ${{ inputs.max-retries }} @@ -227,6 +236,7 @@ runs: exit 1 env: DOTNS_MNEMONIC: ${{ inputs.mnemonic }} + DOTNS_ENV: ${{ inputs.env }} DOMAIN: ${{ inputs.domain }} CID: ${{ inputs.cid }} RPC: ${{ inputs.rpc }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0c6680a..218c8cc 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -76,6 +76,12 @@ on: required: false type: string + env: + description: 'DotNS environment' + required: false + type: string + default: 'paseo-v2' + upload-concurrency: description: 'Adaptive scheduler max window (max: 4)' required: false @@ -285,6 +291,7 @@ jobs: uses: ./.github/actions/bulletin with: mnemonic: ${{ secrets.bulletin-mnemonic || 'bottom drive obey lake curtain smoke basket hold race lonely fit walk' }} + env: ${{ inputs.env }} bulletin-rpc: ${{ inputs.bulletin-rpc }} build-path: ${{ inputs.use-car && './build.car' || './build' }} upload-concurrency: ${{ steps.upload-settings.outputs.upload-concurrency }} @@ -319,6 +326,7 @@ jobs: uses: ./.github/actions/dotns with: mnemonic: ${{ secrets.dotns-mnemonic }} + env: ${{ inputs.env }} rpc: ${{ inputs.rpc }} basename: ${{ inputs.basename }} mode: ${{ inputs.mode }} diff --git a/package.json b/package.json index 6366781..cbc38f9 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,15 @@ "module": "index.ts", "type": "module", "private": true, + "scripts": { + "hooks:install": "git config core.hooksPath .githooks", + "prepare": "git config core.hooksPath .githooks || true", + "format": "bun run --cwd packages/cli format && bun run --cwd packages/ui format", + "format:fix": "bun run --cwd packages/cli format:fix && bun run --cwd packages/ui format:fix", + "lint": "bun run --cwd packages/cli lint && bun run --cwd packages/ui lint", + "lint:fix": "bun run --cwd packages/cli lint:fix && bun run --cwd packages/ui lint:fix", + "precommit": "bun run format:fix && bun run lint:fix && bun run format && bun run lint" + }, "devDependencies": { "@types/bun": "latest", "@types/ws": "^8.18.1" diff --git a/packages/cli/abis/PopRules.json b/packages/cli/abis/PopRules.json index a696cc3..712f664 100644 --- a/packages/cli/abis/PopRules.json +++ b/packages/cli/abis/PopRules.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_RESERVATION_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"classifyName","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"requirement","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"message","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"dotRegistryController","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getBaseNameReservation","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"reservationOwner","type":"address","internalType":"address"},{"name":"expiryTimestamp","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_startingPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBaseName","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"isBase","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isBaseNameReserved","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"isReserved","type":"bool","internalType":"bool"},{"name":"reservationOwner","type":"address","internalType":"address"},{"name":"expiryTimestamp","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"priceWithCheck","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct IPopRules.PriceWithMeta","components":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"userStatus","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"message","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"priceWithoutCheck","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct IPopRules.PriceWithMeta","components":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"userStatus","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"message","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reservations","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"expires","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"reserveBaseName","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUserPopStatus","inputs":[{"name":"status","type":"uint8","internalType":"enum IPopRules.PopStatus"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startingPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"supported","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateDotRegistry","inputs":[{"name":"newRegistry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"userPopStatus","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IPopRules.PopStatus"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"versionString","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"BaseNameReserved","inputs":[{"name":"baseName","type":"string","indexed":true,"internalType":"string"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"expires","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"oldReg","type":"address","indexed":true,"internalType":"address"},{"name":"newReg","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UserPopStatusSet","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"status","type":"uint8","indexed":false,"internalType":"enum IPopRules.PopStatus"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenericError","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegistry","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PopError","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020611aa05f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516119d990816100c78239608051818181610b1b0152610bbe0152f35b6001600160401b0319166001600160401b039081175f516020611aa05f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461104b575080630848731f14610fe057806311d812c314610fb8578063257ab86614610f765780633017fa3314610f1857806335696fa714610d3a5780634f1ef28614610b6f57806352d1902d14610b0957806354fd4d5014610ac257806368e344e914610aa55780636bbfce2b1461078f578063715018a6146107285780638ac7f0f51461069e5780638da5cb5b1461066a5780639180999414610606578063ad3cb1cc146105bf578063b4956ade1461057b578063c5b9e44e14610513578063c5c9504814610484578063d6fbf20214610468578063dcd62573146102ef578063f2fde38b146102c4578063fe2c6198146102815763fe4b84df14610124575f80fd5b3461027d57602036600319011261027d575f5160206119845f395f51905f525460ff8160401c1615906001600160401b03811680159081610275575b600114908161026b575b159081610262575b506102535767ffffffffffffffff1981166001175f5160206119845f395f51905f525581610227575b506101a461188c565b6101ac61188c565b6101b461188c565b6101bd336114db565b6101c561188c565b6004355f556101d057005b68ff0000000000000000195f5160206119845f395f51905f5254165f5160206119845f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001175f5160206119845f395f51905f52555f61019b565b63f92ee8a960e01b5f5260045ffd5b9050155f610172565b303b15915061016a565b839150610160565b5f80fd5b3461027d57602036600319011261027d576004356001600160401b03811161027d576102bc6102b660209236906004016110c1565b9061154c565b604051908152f35b3461027d57602036600319011261027d576102ed6102e061109e565b6102e8611859565b6114db565b005b3461027d576102fd36611112565b9061030661142e565b9161031182856112a6565b92909160018060a01b0316805f52600160205260ff60405f2054169560048710156104545761037d602093610382926103716103d99a80155f1461044e57610359848461154c565b8b52610368888c01998a611462565b60408b01611462565b60608901978852611769565b61123e565b6040519061038f82611154565b546001600160a01b03811680835260a09190911c6001600160401b0316939091018390528015159283610444575b5082610439575b50506103dd575b5050604051918291826111f5565b0390f35b6040516003926103ee606083611183565b602f82527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060208301526e131a5d19481c9959da5cdd1c985b9d608a1b6040830152525282806103cb565b1415905085806103c4565b42109250876103bd565b5f610359565b634e487b7160e01b5f52602160045260245ffd5b3461027d575f36600319011261027d5760205f54604051908152f35b3461027d57602036600319011261027d576004356001600160401b03811161027d573660238201121561027d576020806104cb6103d99336906024816004013591016111bf565b604051928184925191829101835e60029082019081520301902054604080516001600160a01b038316815260a09290921c6001600160401b0316602083015290918291820190565b3461027d57602036600319011261027d5761052c61109e565b610534611859565b6003546001600160a01b0391821691829082167f482b97c53e48ffa324a976e2738053e9aff6eee04d8aac63b10e19411d869b825f80a36001600160a01b03191617600355005b3461027d57602036600319011261027d576004356001600160401b03811161027d576105b66105b060209236906004016110c1565b906116d6565b15604051908152f35b3461027d575f36600319011261027d576103d96040516105e0604082611183565b60058152640352e302e360dc1b60208201526040519182916020835260208301906110ee565b3461027d57602036600319011261027d576004356001600160401b03811161027d576001600160401b0361064961064360609336906004016110c1565b9061146e565b90604093929351931515845260018060a01b03166020840152166040820152f35b3461027d575f36600319011261027d575f5160206119445f395f51905f52546040516001600160a01b039091168152602090f35b3461027d57602036600319011261027d576004356001600160401b03811161027d5760206106d1819236906004016110c1565b919082604051938492833781016002815203019020604051906106f382611154565b546001600160a01b03811680835260a09190911c6001600160401b031692909101829052604080519182526020820192909252f35b3461027d575f36600319011261027d57610740611859565b5f5160206119445f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461027d5761079d36611112565b90916107a761142e565b926107b561037d8284611769565b6020604051916107c483611154565b546001600160a01b03811680845260a09190911c6001600160401b0316919092018190528115159081610a9b575b50610a28575b5061080381836112a6565b6001600160a01b039094165f9081526001602052604090205460ff16936004851015939190846104545785610a225761083c848461154c565b875261084b8260208901611462565b6108588660408901611462565b806060880152600482101561045457600382146109f95750600281036108eb5750505061045457600203610897576103d9905b604051918291826111f5565b6040516305bf8fb360e31b815260206004820152602560248201527f52657175697265732046756c6c20506572736f6e686f6f64207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b6001036109725750506104545760018114908115610967575b5015610913576103d99061088b565b6040516305bf8fb360e31b815260206004820152602560248201527f526571756972657320506572736f6e686f6f64204c697465207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b600291501482610904565b61097c92506116d6565b151590816109ed575b5015610994576103d99061088b565b6040516305bf8fb360e31b815260206004820152602a60248201527f506572736f6e686f6f64204c6974652063616e6e6f742072656769737465722060448201526962617365206e616d657360b01b6064820152608490fd5b60019150141582610985565b6040516305bf8fb360e31b815260206004820152908190610a1e9060248301906110ee565b0390fd5b5f61083c565b6001600160a01b03841603610a3d57846107f8565b6040516305bf8fb360e31b815260206004820152602f60248201527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060448201526e131a5d19481c9959da5cdd1c985b9d608a1b6064820152608490fd5b90504210866107f2565b3461027d575f36600319011261027d576020604051626ebe008152f35b3461027d575f36600319011261027d576103d9604051610ae3604082611183565b60058152640312e302e360dc1b60208201526040519182916020835260208301906110ee565b3461027d575f36600319011261027d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610b605760206040515f5160206119645f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261027d57610b8361109e565b6024356001600160401b03811161027d573660238201121561027d57610bb39036906024816004013591016111bf565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610d18575b50610b6057610bf6611859565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610ce4575b50610c385783634c9c8ce360e01b5f5260045260245ffd5b805f5160206119645f395f51905f52859203610cd25750823b15610cc0575f5160206119645f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610ca8576102ed916118b7565b505034610cb157005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610d10575b81610d0060209383611183565b8101031261027d57519085610c20565b3d9150610cf3565b5f5160206119645f395f51905f52546001600160a01b03161415905083610be9565b3461027d57610d4836611112565b600354909291906001600160a01b03163303610f0957610d6881836112a6565b50600481101561045457600103610eac57610d8291611769565b604051815190602081818501938085835e8101600281520301902060405190610daa82611154565b549060206001600160401b0360018060a01b0384169384845260a01c1691015215610dd157005b626ebe004201804211610e98577f4d72f477fa240edc1a91eaafd5ec14ee8c94142aa248fafb508ac804c9c5362d916001600160401b03602092169360405195610e1a87611154565b60018060a01b031695868152838101868152604051858185518088835e6002908201908152030190209151825491516001600160e01b03199092166001600160a01b03919091161760a09190911b67ffffffffffffffff60a01b16179055604051905190918291908190835e81015f815203902092604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b6040516305bf8fb360e31b815260206004820152602e60248201527f42617365207265736572766174696f6e2072657175697265732061206c69746560448201526d2d656c696769626c65206e616d6560901b6064820152608490fd5b633217675b60e21b5f5260045ffd5b3461027d57602036600319011261027d576004356001600160401b03811161027d576103d9610f57610f51610f659336906004016110c1565b906112a6565b6040519384939284906110b4565b6040602084015260408301906110ee565b3461027d57602036600319011261027d576001600160a01b03610f9761109e565b165f526001602052602060ff60405f205416610fb660405180926110b4565bf35b3461027d575f36600319011261027d576003546040516001600160a01b039091168152602090f35b3461027d57602036600319011261027d57600435600481101561027d57335f52600160205260405f2060ff1981541660ff831617905561102360405180926110b4565b7fcf0033b352dd87a7aff06bd0ae2087677d435524e3249e32346664b0c634504960203392a2005b3461027d57602036600319011261027d576004359063ffffffff60e01b821680920361027d5760209163170c45dd60e11b811490811561108d575b5015158152f35b6301ffc9a760e01b14905083611086565b600435906001600160a01b038216820361027d57565b9060048210156104545752565b9181601f8401121561027d578235916001600160401b03831161027d576020838186019501011161027d57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604060031982011261027d57600435906001600160401b03821161027d5761113c916004016110c1565b90916024356001600160a01b038116810361027d5790565b604081019081106001600160401b0382111761116f57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761116f57604052565b6001600160401b03811161116f57601f01601f191660200190565b9291926111cb826111a4565b916111d96040519384611183565b82948184528183011161027d578281602093845f960137010152565b60a0606061123b93602084528051602085015261121a602082015160408601906110b4565b61122b6040820151838601906110b4565b01519160808082015201906110ee565b90565b60208091604051928184925191829101835e8101600281520301902090565b6040519061126c606083611183565b602582526430ba34b7b760d91b6040837f52657175697265732046756c6c20706572736f6e686f6f64207665726966696360208201520152565b906112c4906112be6112b93683866111bf565b6115cf565b926116d6565b600281116113dc57808203918211610e9857600582111561139c5781600660029310159081611390575b5061133357146113035760029061123b61125d565b5f90604051611313604082611183565b601081526f105d985a5b18589b19481d1bc8185b1b60821b602082015290565b146113435760029061123b61125d565b600190604051611354606082611183565b602681527f5265717569726573204c6967687420706572736f6e686f6f642076657269666960208201526531b0ba34b7b760d11b604082015290565b6008915011155f6112ee565b50506003906040516113af604082611183565b601781527f526573657276656420666f7220476f7665726e616e6365000000000000000000602082015290565b6040516305bf8fb360e31b8152602060048201526024808201527f4e616d652063616e2068617665206d6178696d756d20322064696769742073756044820152630ccccd2f60e31b6064820152608490fd5b60405190608082018281106001600160401b0382111761116f57604052606080835f81525f60208201525f60408201520152565b60048210156104545752565b906020809282604051938492833781016002815203019020916040519261149484611154565b546001600160a01b03811680855260a09190911c6001600160401b031692909301829052821515806114d2575b6114cb575f929190565b6001929190565b504282116114c1565b6001600160a01b03168015611539575f5160206119445f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b6112b99061155b9236916111bf565b6009811061159757600f81101561158e575f5490600f0390600f8211610e9857818102918183041490151715610e985790565b505f5460011c90565b505f90565b5f198114610e985760010190565b9081518110156115bb570160200190565b634e487b7160e01b5f52603260045260245ffd5b80515f9291835b8281106115e257505050565b9193916001600160f81b03196115f882846115aa565b5116600160ff1b811015611623575060018101809111610e985761161c909261159c565b93916115d6565b600760fd1b811015611645575060028101809111610e985761161c909261159c565b600f60fc1b811015611667575060038101809111610e985761161c909261159c565b601f60fb1b811015611689575060048101809111610e985761161c909261159c565b603f60fa1b11156116a95760058101809111610e985761161c909261159c565b60068101809111610e985761161c909261159c565b8015610e98575f190190565b908210156115bb570190565b5f9291908190815b6116e757505050565b909291935f198501858111610e9857600360fc1b6001600160f81b031961170f8388876116ca565b351610159081611743575b501561173b5761172c6117329161159c565b946116be565b919290826116de565b935090915050565b603960f81b91506001600160f81b03199061175f9087866116ca565b351611155f61171a565b90805b80151580611829575b806117f9575b1561178e57611789906116be565b61176c565b9091611799826111a4565b926117a76040519485611183565b828452601f196117b6846111a4565b013660208601375f5b8381106117cd575050505090565b6001906001600160f81b03196117e48285876116ca565b35165f1a6117f282886115aa565b53016117bf565b505f198101818111610e9857603960f81b906001600160f81b0319906118209085876116ca565b3516111561177b565b505f198101818111610e9857600360fc1b906001600160f81b0319906118509085876116ca565b35161015611775565b5f5160206119445f395f51905f52546001600160a01b0316330361187957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206119845f395f51905f525460401c16156118a857565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af48080611930575b156118eb5750506040513d81523d5f602083013e60203d82010160405290565b1561191057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15611921576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806118cb5750813b15156118cb56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220852ac136a957ab2e42fa47befc5dce649ab79748a1d3a0b7a4bbea98d8d08ac264736f6c634300081e0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"735:11068:1:-:0;;;;;;;1084:4:57;1076:13;;-1:-1:-1;;;;;;;;;;;735:11068:1;;;;;;7894:76:56;;-1:-1:-1;;;;;;;;;;;735:11068:1;;7983:34:56;7979:146;;-1:-1:-1;735:11068:1;;;;;;;;1076:13:57;735:11068:1;;;;;;;;;;;7979:146:56;-1:-1:-1;;;;;;735:11068:1;-1:-1:-1;;;;;735:11068:1;;;-1:-1:-1;;;;;;;;;;;735:11068:1;;;8085:29:56;;735:11068:1;;8085:29:56;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:56;;-1:-1:-1;7936:23:56;735:11068:1;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461104b575080630848731f14610fe057806311d812c314610fb8578063257ab86614610f765780633017fa3314610f1857806335696fa714610d3a5780634f1ef28614610b6f57806352d1902d14610b0957806354fd4d5014610ac257806368e344e914610aa55780636bbfce2b1461078f578063715018a6146107285780638ac7f0f51461069e5780638da5cb5b1461066a5780639180999414610606578063ad3cb1cc146105bf578063b4956ade1461057b578063c5b9e44e14610513578063c5c9504814610484578063d6fbf20214610468578063dcd62573146102ef578063f2fde38b146102c4578063fe2c6198146102815763fe4b84df14610124575f80fd5b3461027d57602036600319011261027d575f5160206119845f395f51905f525460ff8160401c1615906001600160401b03811680159081610275575b600114908161026b575b159081610262575b506102535767ffffffffffffffff1981166001175f5160206119845f395f51905f525581610227575b506101a461188c565b6101ac61188c565b6101b461188c565b6101bd336114db565b6101c561188c565b6004355f556101d057005b68ff0000000000000000195f5160206119845f395f51905f5254165f5160206119845f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001175f5160206119845f395f51905f52555f61019b565b63f92ee8a960e01b5f5260045ffd5b9050155f610172565b303b15915061016a565b839150610160565b5f80fd5b3461027d57602036600319011261027d576004356001600160401b03811161027d576102bc6102b660209236906004016110c1565b9061154c565b604051908152f35b3461027d57602036600319011261027d576102ed6102e061109e565b6102e8611859565b6114db565b005b3461027d576102fd36611112565b9061030661142e565b9161031182856112a6565b92909160018060a01b0316805f52600160205260ff60405f2054169560048710156104545761037d602093610382926103716103d99a80155f1461044e57610359848461154c565b8b52610368888c01998a611462565b60408b01611462565b60608901978852611769565b61123e565b6040519061038f82611154565b546001600160a01b03811680835260a09190911c6001600160401b0316939091018390528015159283610444575b5082610439575b50506103dd575b5050604051918291826111f5565b0390f35b6040516003926103ee606083611183565b602f82527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060208301526e131a5d19481c9959da5cdd1c985b9d608a1b6040830152525282806103cb565b1415905085806103c4565b42109250876103bd565b5f610359565b634e487b7160e01b5f52602160045260245ffd5b3461027d575f36600319011261027d5760205f54604051908152f35b3461027d57602036600319011261027d576004356001600160401b03811161027d573660238201121561027d576020806104cb6103d99336906024816004013591016111bf565b604051928184925191829101835e60029082019081520301902054604080516001600160a01b038316815260a09290921c6001600160401b0316602083015290918291820190565b3461027d57602036600319011261027d5761052c61109e565b610534611859565b6003546001600160a01b0391821691829082167f482b97c53e48ffa324a976e2738053e9aff6eee04d8aac63b10e19411d869b825f80a36001600160a01b03191617600355005b3461027d57602036600319011261027d576004356001600160401b03811161027d576105b66105b060209236906004016110c1565b906116d6565b15604051908152f35b3461027d575f36600319011261027d576103d96040516105e0604082611183565b60058152640352e302e360dc1b60208201526040519182916020835260208301906110ee565b3461027d57602036600319011261027d576004356001600160401b03811161027d576001600160401b0361064961064360609336906004016110c1565b9061146e565b90604093929351931515845260018060a01b03166020840152166040820152f35b3461027d575f36600319011261027d575f5160206119445f395f51905f52546040516001600160a01b039091168152602090f35b3461027d57602036600319011261027d576004356001600160401b03811161027d5760206106d1819236906004016110c1565b919082604051938492833781016002815203019020604051906106f382611154565b546001600160a01b03811680835260a09190911c6001600160401b031692909101829052604080519182526020820192909252f35b3461027d575f36600319011261027d57610740611859565b5f5160206119445f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461027d5761079d36611112565b90916107a761142e565b926107b561037d8284611769565b6020604051916107c483611154565b546001600160a01b03811680845260a09190911c6001600160401b0316919092018190528115159081610a9b575b50610a28575b5061080381836112a6565b6001600160a01b039094165f9081526001602052604090205460ff16936004851015939190846104545785610a225761083c848461154c565b875261084b8260208901611462565b6108588660408901611462565b806060880152600482101561045457600382146109f95750600281036108eb5750505061045457600203610897576103d9905b604051918291826111f5565b6040516305bf8fb360e31b815260206004820152602560248201527f52657175697265732046756c6c20506572736f6e686f6f64207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b6001036109725750506104545760018114908115610967575b5015610913576103d99061088b565b6040516305bf8fb360e31b815260206004820152602560248201527f526571756972657320506572736f6e686f6f64204c697465207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b600291501482610904565b61097c92506116d6565b151590816109ed575b5015610994576103d99061088b565b6040516305bf8fb360e31b815260206004820152602a60248201527f506572736f6e686f6f64204c6974652063616e6e6f742072656769737465722060448201526962617365206e616d657360b01b6064820152608490fd5b60019150141582610985565b6040516305bf8fb360e31b815260206004820152908190610a1e9060248301906110ee565b0390fd5b5f61083c565b6001600160a01b03841603610a3d57846107f8565b6040516305bf8fb360e31b815260206004820152602f60248201527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060448201526e131a5d19481c9959da5cdd1c985b9d608a1b6064820152608490fd5b90504210866107f2565b3461027d575f36600319011261027d576020604051626ebe008152f35b3461027d575f36600319011261027d576103d9604051610ae3604082611183565b60058152640312e302e360dc1b60208201526040519182916020835260208301906110ee565b3461027d575f36600319011261027d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610b605760206040515f5160206119645f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261027d57610b8361109e565b6024356001600160401b03811161027d573660238201121561027d57610bb39036906024816004013591016111bf565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610d18575b50610b6057610bf6611859565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610ce4575b50610c385783634c9c8ce360e01b5f5260045260245ffd5b805f5160206119645f395f51905f52859203610cd25750823b15610cc0575f5160206119645f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610ca8576102ed916118b7565b505034610cb157005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610d10575b81610d0060209383611183565b8101031261027d57519085610c20565b3d9150610cf3565b5f5160206119645f395f51905f52546001600160a01b03161415905083610be9565b3461027d57610d4836611112565b600354909291906001600160a01b03163303610f0957610d6881836112a6565b50600481101561045457600103610eac57610d8291611769565b604051815190602081818501938085835e8101600281520301902060405190610daa82611154565b549060206001600160401b0360018060a01b0384169384845260a01c1691015215610dd157005b626ebe004201804211610e98577f4d72f477fa240edc1a91eaafd5ec14ee8c94142aa248fafb508ac804c9c5362d916001600160401b03602092169360405195610e1a87611154565b60018060a01b031695868152838101868152604051858185518088835e6002908201908152030190209151825491516001600160e01b03199092166001600160a01b03919091161760a09190911b67ffffffffffffffff60a01b16179055604051905190918291908190835e81015f815203902092604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b6040516305bf8fb360e31b815260206004820152602e60248201527f42617365207265736572766174696f6e2072657175697265732061206c69746560448201526d2d656c696769626c65206e616d6560901b6064820152608490fd5b633217675b60e21b5f5260045ffd5b3461027d57602036600319011261027d576004356001600160401b03811161027d576103d9610f57610f51610f659336906004016110c1565b906112a6565b6040519384939284906110b4565b6040602084015260408301906110ee565b3461027d57602036600319011261027d576001600160a01b03610f9761109e565b165f526001602052602060ff60405f205416610fb660405180926110b4565bf35b3461027d575f36600319011261027d576003546040516001600160a01b039091168152602090f35b3461027d57602036600319011261027d57600435600481101561027d57335f52600160205260405f2060ff1981541660ff831617905561102360405180926110b4565b7fcf0033b352dd87a7aff06bd0ae2087677d435524e3249e32346664b0c634504960203392a2005b3461027d57602036600319011261027d576004359063ffffffff60e01b821680920361027d5760209163170c45dd60e11b811490811561108d575b5015158152f35b6301ffc9a760e01b14905083611086565b600435906001600160a01b038216820361027d57565b9060048210156104545752565b9181601f8401121561027d578235916001600160401b03831161027d576020838186019501011161027d57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b604060031982011261027d57600435906001600160401b03821161027d5761113c916004016110c1565b90916024356001600160a01b038116810361027d5790565b604081019081106001600160401b0382111761116f57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761116f57604052565b6001600160401b03811161116f57601f01601f191660200190565b9291926111cb826111a4565b916111d96040519384611183565b82948184528183011161027d578281602093845f960137010152565b60a0606061123b93602084528051602085015261121a602082015160408601906110b4565b61122b6040820151838601906110b4565b01519160808082015201906110ee565b90565b60208091604051928184925191829101835e8101600281520301902090565b6040519061126c606083611183565b602582526430ba34b7b760d91b6040837f52657175697265732046756c6c20706572736f6e686f6f64207665726966696360208201520152565b906112c4906112be6112b93683866111bf565b6115cf565b926116d6565b600281116113dc57808203918211610e9857600582111561139c5781600660029310159081611390575b5061133357146113035760029061123b61125d565b5f90604051611313604082611183565b601081526f105d985a5b18589b19481d1bc8185b1b60821b602082015290565b146113435760029061123b61125d565b600190604051611354606082611183565b602681527f5265717569726573204c6967687420706572736f6e686f6f642076657269666960208201526531b0ba34b7b760d11b604082015290565b6008915011155f6112ee565b50506003906040516113af604082611183565b601781527f526573657276656420666f7220476f7665726e616e6365000000000000000000602082015290565b6040516305bf8fb360e31b8152602060048201526024808201527f4e616d652063616e2068617665206d6178696d756d20322064696769742073756044820152630ccccd2f60e31b6064820152608490fd5b60405190608082018281106001600160401b0382111761116f57604052606080835f81525f60208201525f60408201520152565b60048210156104545752565b906020809282604051938492833781016002815203019020916040519261149484611154565b546001600160a01b03811680855260a09190911c6001600160401b031692909301829052821515806114d2575b6114cb575f929190565b6001929190565b504282116114c1565b6001600160a01b03168015611539575f5160206119445f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b6112b99061155b9236916111bf565b6009811061159757600f81101561158e575f5490600f0390600f8211610e9857818102918183041490151715610e985790565b505f5460011c90565b505f90565b5f198114610e985760010190565b9081518110156115bb570160200190565b634e487b7160e01b5f52603260045260245ffd5b80515f9291835b8281106115e257505050565b9193916001600160f81b03196115f882846115aa565b5116600160ff1b811015611623575060018101809111610e985761161c909261159c565b93916115d6565b600760fd1b811015611645575060028101809111610e985761161c909261159c565b600f60fc1b811015611667575060038101809111610e985761161c909261159c565b601f60fb1b811015611689575060048101809111610e985761161c909261159c565b603f60fa1b11156116a95760058101809111610e985761161c909261159c565b60068101809111610e985761161c909261159c565b8015610e98575f190190565b908210156115bb570190565b5f9291908190815b6116e757505050565b909291935f198501858111610e9857600360fc1b6001600160f81b031961170f8388876116ca565b351610159081611743575b501561173b5761172c6117329161159c565b946116be565b919290826116de565b935090915050565b603960f81b91506001600160f81b03199061175f9087866116ca565b351611155f61171a565b90805b80151580611829575b806117f9575b1561178e57611789906116be565b61176c565b9091611799826111a4565b926117a76040519485611183565b828452601f196117b6846111a4565b013660208601375f5b8381106117cd575050505090565b6001906001600160f81b03196117e48285876116ca565b35165f1a6117f282886115aa565b53016117bf565b505f198101818111610e9857603960f81b906001600160f81b0319906118209085876116ca565b3516111561177b565b505f198101818111610e9857600360fc1b906001600160f81b0319906118509085876116ca565b35161015611775565b5f5160206119445f395f51905f52546001600160a01b0316330361187957565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206119845f395f51905f525460401c16156118a857565b631afcd79f60e31b5f5260045ffd5b905f8091602081519101845af48080611930575b156118eb5750506040513d81523d5f602083013e60203d82010160405290565b1561191057639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15611921576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d1515806118cb5750813b15156118cb56fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220852ac136a957ab2e42fa47befc5dce649ab79748a1d3a0b7a4bbea98d8d08ac264736f6c634300081e0033","sourceMap":"735:11068:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;-1:-1:-1;;;;;;;;;;;735:11068:1;;;;;;4301:16:56;735:11068:1;-1:-1:-1;;;;;735:11068:1;;4724:16:56;;:34;;;;735:11068:1;;4788:16:56;:50;;;;735:11068:1;4853:13:56;:30;;;;735:11068:1;4849:91:56;;;-1:-1:-1;;735:11068:1;;;;-1:-1:-1;;;;;;;;;;;735:11068:1;;4977:67:56;;735:11068:1;6891:76:56;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;2242:10:1;6959:1:56;:::i;:::-;6891:76;;:::i;:::-;735:11068:1;;;;5064:101:56;;735:11068:1;5064:101:56;735:11068:1;;-1:-1:-1;;;;;;;;;;;735:11068:1;;-1:-1:-1;;;;;;;;;;;735:11068:1;5140:14:56;735:11068:1;;;;;;5140:14:56;735:11068:1;4977:67:56;-1:-1:-1;;735:11068:1;;;-1:-1:-1;;;;;;;;;;;735:11068:1;4977:67:56;;;4849:91;4906:23;;;735:11068:1;4906:23:56;735:11068:1;;4906:23:56;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:56;;4724:34;;;-1:-1:-1;4724:34:56;;735:11068:1;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;2378:1:38;735:11068:1;;:::i;:::-;2324:62:38;;:::i;:::-;2378:1;:::i;:::-;735:11068:1;;;;;;;;:::i;:::-;;;;:::i;:::-;7878:18;;;;;:::i;:::-;735:11068;;;;;;;;;;;;7929:13;735:11068;;;;;;;;;;;;;;;8196:18;735:11068;7983:50;735:11068;7983:50;8085:32;735:11068;7983:50;:32;;:50;:32;;;8018:11;;;;:::i;:::-;735:11068;;8043:32;:15;;;:32;;;:::i;:::-;735:11068;8085:19;;:32;:::i;:::-;8127:16;;;:33;;;8196:18;:::i;:::-;735:11068;:::i;:::-;;;;;;;:::i;:::-;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;8307:31;;;;;:72;;7983:50;8307:124;;;;7983:50;8290:305;;;;7983:50;735:11068;;;;;;;;;:::i;:::-;;;;8290:305;735:11068;;8556:28;;735:11068;8127:16;735:11068;;:::i;:::-;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;8290:305;;;;8307:124;8399:32;;;-1:-1:-1;8307:124:1;;;;:72;8364:15;-1:-1:-1;;;8307:72:1;;;7983:50;735:11068;7983:50;;735:11068;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1148:71;735:11068;;;;;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;:::i;:::-;2324:62:38;;:::i;:::-;4974:21:1;735:11068;-1:-1:-1;;;;;735:11068:1;;;;;;;;4958:51;735:11068;;4958:51;-1:-1:-1;;;;;;735:11068:1;;4974:21;735:11068;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;-1:-1:-1;;;;;735:11068:1;;;;5213:30;735:11068;;;;;;;;:::i;:::-;5213:30;;:::i;:::-;5260:11;735:11068;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;735:11068:1;;;;;;-1:-1:-1;;;;;735:11068:1;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;-1:-1:-1;;;;;;;;;;;735:11068:1;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5530:12;735:11068;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;2324:62:38;;:::i;:::-;-1:-1:-1;;;;;;;;;;;735:11068:1;;-1:-1:-1;;;;;;735:11068:1;;;;;;;-1:-1:-1;;;;;735:11068:1;3996:40:38;735:11068:1;;3996:40:38;735:11068:1;;;;;;;;:::i;:::-;;;;;:::i;:::-;9246:18;735:11068;9246:18;;;;:::i;735:11068::-;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;9344:31;;;;;:72;;735:11068;9340:251;;;735:11068;6483:18;;;;;:::i;:::-;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;;;;;;;;;;;;;6588:32;;;6623:11;;;;:::i;:::-;735:11068;;6648:32;:15;735:11068;6648:15;;:32;:::i;:::-;6690;:19;735:11068;6690:19;;:32;:::i;:::-;6732:16;;;;:33;735:11068;;;;;;6802:18;6784:36;;735:11068;;-1:-1:-1;9307:12:1;6862:35;;9307:12;;735:11068;;;;;9307:12;6938:31;735:11068;;;6858:692;;735:11068;;;;;;;:::i;:::-;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;6858:692;6534:13;7055:35;6534:13;;735:11068;;;;6534:13;7131:31;;:66;;;;;7051:499;735:11068;;;;;7051:499;6858:692;;735:11068;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;7131:66;9307:12;735:11068;;7166:31;7131:66;;;7051:499;7334:26;;;;:::i;:::-;7399:19;;:54;;;;7051:499;735:11068;;;;;7051:499;6858:692;;735:11068;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;7399:54;6534:13;735:11068;;7422:31;;7399:54;;;735:11068;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;6588:50;735:11068;6588:50;;9340:251;-1:-1:-1;;;;;735:11068:1;;9457:32;735:11068;;9340:251;;;735:11068;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;9344:72;9401:15;;;-1:-1:-1;9344:72:1;;;735:11068;;;;;;-1:-1:-1;;735:11068:1;;;;;;;1330:8;735:11068;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;735:11068:1;;;;4840:6:57;-1:-1:-1;;;;;735:11068:1;4831:4:57;4823:23;4819:145;;735:11068:1;;;-1:-1:-1;;;;;;;;;;;735:11068:1;;;4819:145:57;4594:29;;;735:11068:1;4924:29:57;735:11068:1;;4924:29:57;735:11068:1;;;-1:-1:-1;;735:11068:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;4417:6:57;735:11068:1;4408:4:57;4400:23;;;:120;;;;735:11068:1;4383:251:57;;;2324:62:38;;:::i;:::-;735:11068:1;;-1:-1:-1;;;5881:52:57;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;5881:52:57;;735:11068:1;;5881:52:57;;;735:11068:1;-1:-1:-1;5877:437:57;;1805:47:49;;;;735:11068:1;6243:60:57;735:11068:1;;;;6243:60:57;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:57;;;5971:120;;1748:29:49;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;735:11068:1;;-1:-1:-1;;;;;;735:11068:1;;;;;2407:36:49;-1:-1:-1;;2407:36:49;735:11068:1;;2458:15:49;:11;;2489:53;;;:::i;2454:148::-;6163:9;;;6159:70;;735:11068:1;6159:70:49;6199:19;;;735:11068:1;6199:19:49;735:11068:1;;6199:19:49;1744:119;1805:47;;;735:11068:1;1805:47:49;735:11068:1;;;;1805:47:49;5971:120:57;6042:34;;;735:11068:1;6042:34:57;735:11068:1;;;;6042:34:57;5881:52;;;;735:11068:1;5881:52:57;;735:11068:1;5881:52:57;;;;;;735:11068:1;5881:52:57;;;:::i;:::-;;;735:11068:1;;;;;5881:52:57;;;;;;;-1:-1:-1;5881:52:57;;4400:120;-1:-1:-1;;;;;;;;;;;735:11068:1;-1:-1:-1;;;;;735:11068:1;4478:42:57;;;-1:-1:-1;4400:120:57;;;735:11068:1;;;;;;;:::i;:::-;11757:21;735:11068;;;;;-1:-1:-1;;;;;735:11068:1;11743:10;:35;735:11068;;4027:18;;;;:::i;:::-;735:11068;;;;;;;4094:17;4076:35;735:11068;;4233:18;;;:::i;:::-;735:11068;;;;;;;;;;;;;;;;;4303:12;735:11068;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;;;4343:39;4339:486;;735:11068;4339:486;1330:8;4604:15;735:11068;4604:15;;735:11068;;;4759:55;735:11068;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;:::i;:::-;;;;;;;;;;;4686:54;;;735:11068;;;;;;;;;;;;;4303:12;735:11068;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;735:11068:1;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4759:55;735:11068;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;735:11068:1;;;;-1:-1:-1;;;;;735:11068:1;;:::i;:::-;;;;1040:50;735:11068;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;735:11068:1;;;;1554:36;735:11068;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;-1:-1:-1;;735:11068:1;;;;;;;;;;;;2694:10;735:11068;;2680:13;735:11068;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2729:36;735:11068;2694:10;2729:36;;735:11068;;;;;;;-1:-1:-1;;735:11068:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11120:42:1;;;:82;;;;735:11068;;;;;;;11120:82;-1:-1:-1;;;1119:40:43;;-1:-1:-1;11120:82:1;;;735:11068;;;;-1:-1:-1;;;;;735:11068:1;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;735:11068:1;;;;;;;;-1:-1:-1;;735:11068:1;;;;:::o;:::-;;-1:-1:-1;;735:11068:1;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;:::o;:::-;;;;-1:-1:-1;735:11068:1;;;;;-1:-1:-1;735:11068:1;;;;;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;:::o;:::-;-1:-1:-1;;;;;735:11068:1;;;;;;-1:-1:-1;;735:11068:1;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;735:11068:1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;9307:12;735:11068;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;:::o;2808:994::-;;3044:26;2808:994;2996:13;735:11068;;;;;:::i;:::-;2996:13;:::i;:::-;3044:26;;:::i;:::-;3107:1;3089:19;;735:11068;;;;;;;;;;3248:1;3234:15;;;3230:100;;3344:15;3358:1;3107;3344:15;;;:34;;;;2808:994;3340:271;;;3625:19;3621:97;;3107:1;735:11068;;;:::i;3621:97::-;735:11068;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;735:11068:1;;;;3660:47;:::o;3340:271::-;3398:19;3394:126;;3107:1;735:11068;;;:::i;3394:126::-;3445:17;735:11068;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;3437:68;:::o;3344:34::-;3377:1;3363:15;;;;3344:34;;;3230:100;3265:54;;3273:18;735:11068;;;;;;;:::i;:::-;;;;;;;;;3265:54;:::o;735:11068::-;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;735:11068:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;-1:-1:-1;735:11068:1;;-1:-1:-1;735:11068:1;;;;-1:-1:-1;735:11068:1;;;;;;:::o;:::-;;;;;;;;:::o;5646:490::-;;735:11068;5646:490;;735:11068;;;;;;;;;;5878:12;735:11068;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;735:11068:1;;;;;;;;;;-1:-1:-1;;;;;735:11068:1;;;;;;;;5914:31;;;;:72;;5646:490;5910:156;;-1:-1:-1;6075:54:1;;5646:490;:::o;5910:156::-;6010:4;6002:53;;;:::o;5914:72::-;5971:15;;5949:37;;5914:72;;3426:215:38;-1:-1:-1;;;;;735:11068:1;3510:22:38;;3506:91;;-1:-1:-1;;;;;;;;;;;735:11068:1;;-1:-1:-1;;;;;;735:11068:1;;;;;;;-1:-1:-1;;;;;735:11068:1;3996:40:38;-1:-1:-1;;3996:40:38;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;735:11068:1;;3530:1:38;3555:31;8663:321:1;735:11068;8663:321;8770:13;8663:321;735:11068;;;:::i;8770:13::-;8810:1;8797:14;;8793:53;;8874:2;8860:16;;;8856:71;;735:11068;;;8874:2;735:11068;;8874:2;735:11068;;;;;;;;;;;;;;;;;;8663:321;:::o;8856:71::-;735:11068;;;;;8892:24;:::o;8793:53::-;8827:8;735:11068;8827:8;:::o;735:11068::-;-1:-1:-1;;735:11068:1;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1053:453:22;735:11068:1;;1144:1:22;;1053:453;1144:1;1215:14;;;;;;1053:453;;;:::o;1231:5::-;735:11068:1;;;-1:-1:-1;;;;;;1263:11:22;;;;:::i;:::-;735:11068:1;;-1:-1:-1;;;1292:8:22;;735:11068:1;;;;1307:1:22;735:11068:1;;;;;;;1231:5:22;1302:6;1288:201;1231:5;:::i;:::-;1206:7;;;;1288:201;-1:-1:-1;;;1331:8:22;;735:11068:1;;;;1346:1:22;735:11068:1;;;;;;;1231:5:22;1341:6;1327:162;1231:5;:::i;1327:162::-;-1:-1:-1;;;1370:8:22;;735:11068:1;;;;1385:1:22;735:11068:1;;;;;;;1231:5:22;1380:6;1366:123;1231:5;:::i;1366:123::-;-1:-1:-1;;;1409:8:22;;735:11068:1;;;;1424:1:22;735:11068:1;;;;;;;1231:5:22;1419:6;1405:84;1231:5;:::i;1405:84::-;-1:-1:-1;;;;735:11068:1;;;1463:1:22;735:11068:1;;;;;;;1231:5:22;1458:6;1444:45;1231:5;:::i;1444:45::-;1488:1;735:11068:1;;;;;;;1231:5:22;1483:6;1444:45;1231:5;:::i;735:11068:1:-;;;;;-1:-1:-1;;735:11068:1;;:::o;:::-;;;;;;;;;:::o;9746:457::-;735:11068;;9746:457;;;;;10012:5;;;9746:457;;;:::o;10019:3::-;735:11068;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;10042:17:1;;;;;:::i;:::-;;735:11068;10042:25;;:54;;;;10019:3;-1:-1:-1;10038:149:1;;;10116:12;10019:3;10116:12;;:::i;:::-;10038:149;10019:3;:::i;:::-;9986:24;;;;;;10038:149;10167:5;-1:-1:-1;10167:5:1;;-1:-1:-1;;9746:457:1:o;10042:54::-;-1:-1:-1;;;735:11068:1;-1:-1:-1;;;;;;;735:11068:1;10071:17;;;;;:::i;:::-;;735:11068;10071:25;;10042:54;;;10347:567;;10496:38;10545:176;10565:15;;;:53;;;10545:176;10565:107;;;10545:176;10565:107;;;10697:13;;;:::i;:::-;10545:176;;10565:107;;;735:11068;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;735:11068:1;;;:::i;:::-;;;;;;;-1:-1:-1;10805:15:1;;;;;;10886:21;;;;10347:567;:::o;10822:3::-;735:11068;;-1:-1:-1;;;;;;10853:12:1;735:11068;10853:12;;;:::i;:::-;;735:11068;-1:-1:-1;10841:24:1;;;;;:::i;:::-;;735:11068;10790:13;;10565:107;-1:-1:-1;;;735:11068:1;;;;;;;-1:-1:-1;;;735:11068:1;-1:-1:-1;;;;;;735:11068:1;10638:26;;;;;:::i;:::-;;735:11068;10638:34;;10565:107;;:53;-1:-1:-1;;;735:11068:1;;;;;;;-1:-1:-1;;;735:11068:1;-1:-1:-1;;;;;;735:11068:1;10584:26;;;;;:::i;:::-;;735:11068;10584:34;;10565:53;;2679:162:38;-1:-1:-1;;;;;;;;;;;735:11068:1;-1:-1:-1;;;;;735:11068:1;987:10:42;2738:23:38;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:38;987:10:42;2784:40:38;735:11068:1;;-1:-1:-1;2784:40:38;7082:141:56;735:11068:1;-1:-1:-1;;;;;;;;;;;735:11068:1;;;;7148:18:56;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:56;;-1:-1:-1;7189:17:56;4691:549:62;;-1:-1:-1;4691:549:62;;3490:129:66;;;;;;;;;;4874:72:62;;4691:549;4870:364;;;4774:252:66;;;;;;;;-1:-1:-1;3490:129:66;4774:252;;;3490:129;4774:252;;;;;;4962:32:62;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:62;;;-1:-1:-1;;;;;735:11068:1;;;;5045:24:62;735:11068:1;;;5045:24:62;5011:223;4536:73:66;5090:33:62;4536:73:66;;5147:169;;;-1:-1:-1;5147:169:66;;;;;5086:148:62;5204:19;;;-1:-1:-1;5204:19:62;;-1:-1:-1;5204:19:62;4874:72;-1:-1:-1;4536:73:66;4886:33:62;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"44630":[{"start":2843,"length":32},{"start":3006,"length":32}]}},"methodIdentifiers":{"MAX_RESERVATION_TIME()":"68e344e9","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","classifyName(string)":"3017fa33","dotRegistryController()":"11d812c3","getBaseNameReservation(string)":"8ac7f0f5","initialize(uint256)":"fe4b84df","isBaseName(string)":"b4956ade","isBaseNameReserved(string)":"91809994","owner()":"8da5cb5b","price(string)":"fe2c6198","priceWithCheck(string,address)":"6bbfce2b","priceWithoutCheck(string,address)":"dcd62573","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","reservations(string)":"c5c95048","reserveBaseName(string,address)":"35696fa7","setUserPopStatus(uint8)":"0848731f","startingPrice()":"d6fbf202","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","updateDotRegistry(address)":"c5b9e44e","upgradeToAndCall(address,bytes)":"4f1ef286","userPopStatus(address)":"257ab866","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"GenericError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegistry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PopError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"name\":\"BaseNameReserved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldReg\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newReg\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"UserPopStatusSet\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_RESERVATION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"classifyName\",\"outputs\":[{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"requirement\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"dotRegistryController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"getBaseNameReservation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"reservationOwner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expiryTimestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startingPrice\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"isBaseName\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBase\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"isBaseNameReserved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isReserved\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"reservationOwner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expiryTimestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"priceWithCheck\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"userStatus\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"internalType\":\"struct IPopRules.PriceWithMeta\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"priceWithoutCheck\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"userStatus\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"internalType\":\"struct IPopRules.PriceWithMeta\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"reservations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"reserveBaseName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"name\":\"setUserPopStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRegistry\",\"type\":\"address\"}],\"name\":\"updateDotRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"userPopStatus\",\"outputs\":[{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"versionString\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"admin@parity.io\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"GenericError(string)\":[{\"params\":{\"reason\":\"Human-readable explanation of the failure condition\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"PopError(string)\":[{\"params\":{\"reason\":\"Human-readable explanation of the failure condition\"}}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"BaseNameReserved(string,address,uint64)\":{\"params\":{\"baseName\":\"The digit-stripped label receiving reservation\",\"expires\":\"Timestamp when the reservation expires\",\"owner\":\"Address obtaining the reservation right\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RegistryUpdated(address,address)\":{\"params\":{\"newReg\":\"New address to set\",\"oldReg\":\"Currently set registry address\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"UserPopStatusSet(address,uint8)\":{\"details\":\"This is temporary until we have a Precompile for accessing PoP status\",\"params\":{\"status\":\"New PoP tier assigned\",\"user\":\"Address of the user\"}}},\"kind\":\"dev\",\"methods\":{\"classifyName(string)\":{\"params\":{\"name\":\"The name label being evaluated\"},\"returns\":{\"message\":\"Explanation of classification result\",\"requirement\":\"Required tier for registration\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getBaseNameReservation(string)\":{\"params\":{\"baseName\":\"The base label without trailing digits\"},\"returns\":{\"expiryTimestamp\":\"UNIX timestamp when the reservation expires\",\"reservationOwner\":\"The address assigned to the reservation\"}},\"initialize(uint256)\":{\"params\":{\"_startingPrice\":\"Base price in wei for No pop status users\"}},\"isBaseName(string)\":{\"params\":{\"name\":\"The name to check\"},\"returns\":{\"isBase\":\"stating if the name is base or not\"}},\"isBaseNameReserved(string)\":{\"params\":{\"baseName\":\"The base label without trailing digits\"},\"returns\":{\"expiryTimestamp\":\"The reservation expiry timestamp\",\"isReserved\":\"True if a reservation is active\",\"reservationOwner\":\"The reservation holder\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"price(string)\":{\"params\":{\"name\":\"Domain label to price\"},\"returns\":{\"_0\":\"for registering the name\"}},\"priceWithCheck(string,address)\":{\"details\":\"We currently revert on names considered as reserved for Governance The price we apply here is merely for spam protection and is insignificant It mainly applies to no status users\",\"params\":{\"name\":\"Domain label\",\"userAddress\":\"Registering user for the given label\"},\"returns\":{\"metadata\":\"Price with PoP requirements\"}},\"priceWithoutCheck(string,address)\":{\"details\":\"We currently dont revert on names considered as reserved for Governance The price we apply here is merely for spam protection and is insignificant It mainly applies to no status usersThis function is the same as @custom:function priceWithCheck\",\"params\":{\"name\":\"Domain label\",\"userAddress\":\"Registering user for the given label\"},\"returns\":{\"metadata\":\"Price with PoP requirements\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"reserveBaseName(string,address)\":{\"details\":\"Can only be called by the registry\",\"params\":{\"baseName\":\"The base label with trailing digits removed\",\"user\":\"The address receiving reservation rights\"}},\"setUserPopStatus(uint8)\":{\"details\":\"Once set, this PoP status applies to all registrations by this user This replaces per-name PoP assignmentsThis is temporary until we have a Precompile for accessing PoP status\",\"params\":{\"status\":\"The PoP tier to assign to the user (NoStatus, PopLite, or PopFull)\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateDotRegistry(address)\":{\"params\":{\"dotRegistry\":\"the address of the new registry\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"version()\":{\"returns\":{\"versionString\":\"Current version string\"}}},\"stateVariables\":{\"__gap\":{\"details\":\"Reserved storage space to allow for layout changes in the future.\"}},\"title\":\"PopRules\",\"version\":1},\"userdoc\":{\"errors\":{\"GenericError(string)\":[{\"notice\":\"Used to throw generic errors\"}],\"NotRegistry()\":[{\"notice\":\"Used when functions only allow the registry to make calls\"}],\"PopError(string)\":[{\"notice\":\"Thrown when a name violates PoP-tier or reservation requirements\"}]},\"events\":{\"BaseNameReserved(string,address,uint64)\":{\"notice\":\"Emitted when a base name receives a reservation\"},\"RegistryUpdated(address,address)\":{\"notice\":\"Emitted when the registry is updated\"},\"UserPopStatusSet(address,uint8)\":{\"notice\":\"Emitted when a user's PoP status is updated\"}},\"kind\":\"user\",\"methods\":{\"MAX_RESERVATION_TIME()\":{\"notice\":\"Maximum time a base name can be reserved\"},\"classifyName(string)\":{\"notice\":\"Classifies a name into a required PoP tier according to DotNS naming rules\"},\"dotRegistryController()\":{\"notice\":\"Authorized registry controller address\"},\"getBaseNameReservation(string)\":{\"notice\":\"Retrieves reservation information for a base name\"},\"initialize(uint256)\":{\"notice\":\"Initializes the oracle (public entry point)\"},\"isBaseName(string)\":{\"notice\":\"Used to determine if a given name is a base name Base name means has no trailing digits based on POP rules\"},\"isBaseNameReserved(string)\":{\"notice\":\"Indicates whether a base name is currently reserved\"},\"price(string)\":{\"notice\":\"Calculates registration cost\"},\"priceWithCheck(string,address)\":{\"notice\":\"Calculates price with PoP and reservation validation\"},\"priceWithoutCheck(string,address)\":{\"notice\":\"Calculates price with PoP and reservation validation\"},\"reservations(string)\":{\"notice\":\"Active reservations for base names\"},\"reserveBaseName(string,address)\":{\"notice\":\"Creates a reservation entry for the digit-stripped version of a name\"},\"setUserPopStatus(uint8)\":{\"notice\":\"Sets the Proof-of-Personhood (PoP) tier for the caller's profile\"},\"startingPrice()\":{\"notice\":\"Wei price for names with 9 characters and up\"},\"updateDotRegistry(address)\":{\"notice\":\"allows the Owner to update the dot registry\"},\"userPopStatus(address)\":{\"notice\":\"Tracks PoP status per user/profile\"},\"version()\":{\"notice\":\"Returns implementation version\"}},\"notice\":\"Implements DotNS pricing with PoP-tier validation and base-name reservations\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pop/PopRules.sol\":\"PopRules\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\"],\"viaIR\":true},\"sources\":{\"contracts/pop/IPopRules.sol\":{\"keccak256\":\"0x0c32818b1a88e42368621dea48d9f6c8ff40e256ab19906cc69794a717e2c7ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86e87b136509a46b680f8cc8fa9cadc722546beec4ea5e0f17e420735ce0daeb\",\"dweb:/ipfs/QmVybQR8gsagmqDHiw9ncqWibkYiQeEaBCMpbRh1GNpNCo\"]},\"contracts/pop/PopRules.sol\":{\"keccak256\":\"0x57cd23da00d2027d3b9da75898590a6daf7cd05a92329cfd47883cba49859ef9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5fcf7b351e89e0cb03e3a1edacc55ce36eb36d15f18b9120d093356846bde180\",\"dweb:/ipfs/Qmdr5J6mMNra2XiaSbcbdEEUnw15GDuGJ75wXvoD72ofxH\"]},\"contracts/utils/StringUtils.sol\":{\"keccak256\":\"0xea0408b85e81253b372a80170787b646b37e7b32a663675a5690a3f593994be2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b36e7a904b394c970217b375b39e6fa452a5cc91afdb5d45d32ef07b89809a9c\",\"dweb:/ipfs/QmQw5caBUK27wLgEwpwXqjbpYLSNm3Nf7s1QgzMeVmT2Jk\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e\",\"dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812\",\"dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147\",\"dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol\":{\"keccak256\":\"0x5b4802a4352474792df3107e961d1cc593e47b820c14f69d3505cb28f5a6a583\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6f86fd01f829499fe0545ff5dda07d4521988e88bfe0bf801fc15650921ed56\",\"dweb:/ipfs/QmUUKu4ZDffHAmfkf3asuQfmLTyfpuy2Amdncc3SqfzKPG\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a\",\"dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c\",\"dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"GenericError"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegistry"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"PopError"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"string","name":"baseName","type":"string","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint64","name":"expires","type":"uint64","indexed":false}],"type":"event","name":"BaseNameReserved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"oldReg","type":"address","indexed":true},{"internalType":"address","name":"newReg","type":"address","indexed":true}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"enum IPopRules.PopStatus","name":"status","type":"uint8","indexed":false}],"type":"event","name":"UserPopStatusSet","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_RESERVATION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"classifyName","outputs":[{"internalType":"enum IPopRules.PopStatus","name":"requirement","type":"uint8"},{"internalType":"string","name":"message","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"dotRegistryController","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"view","type":"function","name":"getBaseNameReservation","outputs":[{"internalType":"address","name":"reservationOwner","type":"address"},{"internalType":"uint64","name":"expiryTimestamp","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"_startingPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"pure","type":"function","name":"isBaseName","outputs":[{"internalType":"bool","name":"isBase","type":"bool"}]},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"view","type":"function","name":"isBaseNameReserved","outputs":[{"internalType":"bool","name":"isReserved","type":"bool"},{"internalType":"address","name":"reservationOwner","type":"address"},{"internalType":"uint64","name":"expiryTimestamp","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"priceWithCheck","outputs":[{"internalType":"struct IPopRules.PriceWithMeta","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"enum IPopRules.PopStatus","name":"status","type":"uint8"},{"internalType":"enum IPopRules.PopStatus","name":"userStatus","type":"uint8"},{"internalType":"string","name":"message","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"priceWithoutCheck","outputs":[{"internalType":"struct IPopRules.PriceWithMeta","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"enum IPopRules.PopStatus","name":"status","type":"uint8"},{"internalType":"enum IPopRules.PopStatus","name":"userStatus","type":"uint8"},{"internalType":"string","name":"message","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"view","type":"function","name":"reservations","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"expires","type":"uint64"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"reserveBaseName"},{"inputs":[{"internalType":"enum IPopRules.PopStatus","name":"status","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setUserPopStatus"},{"inputs":[],"stateMutability":"view","type":"function","name":"startingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"supported","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newRegistry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateDotRegistry"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"userPopStatus","outputs":[{"internalType":"enum IPopRules.PopStatus","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"versionString","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"classifyName(string)":{"params":{"name":"The name label being evaluated"},"returns":{"message":"Explanation of classification result","requirement":"Required tier for registration"}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getBaseNameReservation(string)":{"params":{"baseName":"The base label without trailing digits"},"returns":{"expiryTimestamp":"UNIX timestamp when the reservation expires","reservationOwner":"The address assigned to the reservation"}},"initialize(uint256)":{"params":{"_startingPrice":"Base price in wei for No pop status users"}},"isBaseName(string)":{"params":{"name":"The name to check"},"returns":{"isBase":"stating if the name is base or not"}},"isBaseNameReserved(string)":{"params":{"baseName":"The base label without trailing digits"},"returns":{"expiryTimestamp":"The reservation expiry timestamp","isReserved":"True if a reservation is active","reservationOwner":"The reservation holder"}},"owner()":{"details":"Returns the address of the current owner."},"price(string)":{"params":{"name":"Domain label to price"},"returns":{"_0":"for registering the name"}},"priceWithCheck(string,address)":{"details":"We currently revert on names considered as reserved for Governance The price we apply here is merely for spam protection and is insignificant It mainly applies to no status users","params":{"name":"Domain label","userAddress":"Registering user for the given label"},"returns":{"metadata":"Price with PoP requirements"}},"priceWithoutCheck(string,address)":{"details":"We currently dont revert on names considered as reserved for Governance The price we apply here is merely for spam protection and is insignificant It mainly applies to no status usersThis function is the same as @custom:function priceWithCheck","params":{"name":"Domain label","userAddress":"Registering user for the given label"},"returns":{"metadata":"Price with PoP requirements"}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"reserveBaseName(string,address)":{"details":"Can only be called by the registry","params":{"baseName":"The base label with trailing digits removed","user":"The address receiving reservation rights"}},"setUserPopStatus(uint8)":{"details":"Once set, this PoP status applies to all registrations by this user This replaces per-name PoP assignmentsThis is temporary until we have a Precompile for accessing PoP status","params":{"status":"The PoP tier to assign to the user (NoStatus, PopLite, or PopFull)"}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"updateDotRegistry(address)":{"params":{"dotRegistry":"the address of the new registry"}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"version()":{"returns":{"versionString":"Current version string"}}},"version":1},"userdoc":{"kind":"user","methods":{"MAX_RESERVATION_TIME()":{"notice":"Maximum time a base name can be reserved"},"classifyName(string)":{"notice":"Classifies a name into a required PoP tier according to DotNS naming rules"},"dotRegistryController()":{"notice":"Authorized registry controller address"},"getBaseNameReservation(string)":{"notice":"Retrieves reservation information for a base name"},"initialize(uint256)":{"notice":"Initializes the oracle (public entry point)"},"isBaseName(string)":{"notice":"Used to determine if a given name is a base name Base name means has no trailing digits based on POP rules"},"isBaseNameReserved(string)":{"notice":"Indicates whether a base name is currently reserved"},"price(string)":{"notice":"Calculates registration cost"},"priceWithCheck(string,address)":{"notice":"Calculates price with PoP and reservation validation"},"priceWithoutCheck(string,address)":{"notice":"Calculates price with PoP and reservation validation"},"reservations(string)":{"notice":"Active reservations for base names"},"reserveBaseName(string,address)":{"notice":"Creates a reservation entry for the digit-stripped version of a name"},"setUserPopStatus(uint8)":{"notice":"Sets the Proof-of-Personhood (PoP) tier for the caller's profile"},"startingPrice()":{"notice":"Wei price for names with 9 characters and up"},"updateDotRegistry(address)":{"notice":"allows the Owner to update the dot registry"},"userPopStatus(address)":{"notice":"Tracks PoP status per user/profile"},"version()":{"notice":"Returns implementation version"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/pop/PopRules.sol":"PopRules"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/pop/IPopRules.sol":{"keccak256":"0x0c32818b1a88e42368621dea48d9f6c8ff40e256ab19906cc69794a717e2c7ad","urls":["bzz-raw://86e87b136509a46b680f8cc8fa9cadc722546beec4ea5e0f17e420735ce0daeb","dweb:/ipfs/QmVybQR8gsagmqDHiw9ncqWibkYiQeEaBCMpbRh1GNpNCo"],"license":"MIT"},"contracts/pop/PopRules.sol":{"keccak256":"0x57cd23da00d2027d3b9da75898590a6daf7cd05a92329cfd47883cba49859ef9","urls":["bzz-raw://5fcf7b351e89e0cb03e3a1edacc55ce36eb36d15f18b9120d093356846bde180","dweb:/ipfs/Qmdr5J6mMNra2XiaSbcbdEEUnw15GDuGJ75wXvoD72ofxH"],"license":"MIT"},"contracts/utils/StringUtils.sol":{"keccak256":"0xea0408b85e81253b372a80170787b646b37e7b32a663675a5690a3f593994be2","urls":["bzz-raw://b36e7a904b394c970217b375b39e6fa452a5cc91afdb5d45d32ef07b89809a9c","dweb:/ipfs/QmQw5caBUK27wLgEwpwXqjbpYLSNm3Nf7s1QgzMeVmT2Jk"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16","urls":["bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d","dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf","urls":["bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e","dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224","urls":["bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812","dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33","urls":["bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147","dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol":{"keccak256":"0x5b4802a4352474792df3107e961d1cc593e47b820c14f69d3505cb28f5a6a583","urls":["bzz-raw://a6f86fd01f829499fe0545ff5dda07d4521988e88bfe0bf801fc15650921ed56","dweb:/ipfs/QmUUKu4ZDffHAmfkf3asuQfmLTyfpuy2Amdncc3SqfzKPG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a","urls":["bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a","dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c","urls":["bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c","dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":186,"contract":"contracts/pop/PopRules.sol:PopRules","label":"startingPrice","offset":0,"slot":"0","type":"t_uint256"},{"astId":192,"contract":"contracts/pop/PopRules.sol:PopRules","label":"userPopStatus","offset":0,"slot":"1","type":"t_mapping(t_address,t_enum(PopStatus)8)"},{"astId":198,"contract":"contracts/pop/PopRules.sol:PopRules","label":"reservations","offset":0,"slot":"2","type":"t_mapping(t_string_memory_ptr,t_struct(Reservation)63_storage)"},{"astId":209,"contract":"contracts/pop/PopRules.sol:PopRules","label":"dotRegistryController","offset":0,"slot":"3","type":"t_address"},{"astId":214,"contract":"contracts/pop/PopRules.sol:PopRules","label":"__gap","offset":0,"slot":"4","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_enum(PopStatus)8":{"encoding":"inplace","label":"enum IPopRules.PopStatus","numberOfBytes":"1"},"t_mapping(t_address,t_enum(PopStatus)8)":{"encoding":"mapping","key":"t_address","label":"mapping(address => enum IPopRules.PopStatus)","numberOfBytes":"32","value":"t_enum(PopStatus)8"},"t_mapping(t_string_memory_ptr,t_struct(Reservation)63_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct IPopRules.Reservation)","numberOfBytes":"32","value":"t_struct(Reservation)63_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Reservation)63_storage":{"encoding":"inplace","label":"struct IPopRules.Reservation","numberOfBytes":"32","members":[{"astId":60,"contract":"contracts/pop/PopRules.sol:PopRules","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":62,"contract":"contracts/pop/PopRules.sol:PopRules","label":"expires","offset":20,"slot":"0","type":"t_uint64"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"ast":{"absolutePath":"contracts/pop/PopRules.sol","id":1088,"exportedSymbols":{"ERC165Upgradeable":[43322],"IPopRules":[156],"Initializable":[44614],"OwnableUpgradeable":[42148],"PopRules":[1087],"StringUtils":[6323],"UUPSUpgradeable":[44780]},"nodeType":"SourceUnit","src":"32:11772:1","nodes":[{"id":158,"nodeType":"PragmaDirective","src":"32:24:1","nodes":[],"literals":["solidity","^","0.8",".30"]},{"id":160,"nodeType":"ImportDirective","src":"58:96:1","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1088,"sourceUnit":42153,"symbolAliases":[{"foreign":{"id":159,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44614,"src":"66:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":162,"nodeType":"ImportDirective","src":"155:100:1","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1088,"sourceUnit":42157,"symbolAliases":[{"foreign":{"id":161,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44780,"src":"163:15:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":164,"nodeType":"ImportDirective","src":"256:107:1","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1088,"sourceUnit":42149,"symbolAliases":[{"foreign":{"id":163,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42148,"src":"269:18:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":166,"nodeType":"ImportDirective","src":"364:118:1","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":1088,"sourceUnit":43323,"symbolAliases":[{"foreign":{"id":165,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43322,"src":"377:17:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":168,"nodeType":"ImportDirective","src":"483:53:1","nodes":[],"absolutePath":"contracts/utils/StringUtils.sol","file":"../utils/StringUtils.sol","nameLocation":"-1:-1:-1","scope":1088,"sourceUnit":6324,"symbolAliases":[{"foreign":{"id":167,"name":"StringUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6323,"src":"491:11:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":170,"nodeType":"ImportDirective","src":"537:42:1","nodes":[],"absolutePath":"contracts/pop/IPopRules.sol","file":"./IPopRules.sol","nameLocation":"-1:-1:-1","scope":1088,"sourceUnit":157,"symbolAliases":[{"foreign":{"id":169,"name":"IPopRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156,"src":"545:9:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1087,"nodeType":"ContractDefinition","src":"735:11068:1","nodes":[{"id":183,"nodeType":"UsingForDirective","src":"863:24:1","nodes":[],"global":false,"libraryName":{"id":182,"name":"StringUtils","nameLocations":["869:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":6323,"src":"869:11:1"}},{"id":186,"nodeType":"VariableDeclaration","src":"954:28:1","nodes":[],"constant":false,"documentation":{"id":184,"nodeType":"StructuredDocumentation","src":"893:56:1","text":"@notice Wei price for names with 9 characters and up"},"functionSelector":"d6fbf202","mutability":"mutable","name":"startingPrice","nameLocation":"969:13:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":185,"name":"uint256","nodeType":"ElementaryTypeName","src":"954:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":192,"nodeType":"VariableDeclaration","src":"1040:50:1","nodes":[],"constant":false,"documentation":{"id":187,"nodeType":"StructuredDocumentation","src":"989:46:1","text":"@notice Tracks PoP status per user/profile"},"functionSelector":"257ab866","mutability":"mutable","name":"userPopStatus","nameLocation":"1077:13:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_PopStatus_$8_$","typeString":"mapping(address => enum IPopRules.PopStatus)"},"typeName":{"id":191,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":188,"name":"address","nodeType":"ElementaryTypeName","src":"1048:7:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1040:29:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_PopStatus_$8_$","typeString":"mapping(address => enum IPopRules.PopStatus)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":190,"nodeType":"UserDefinedTypeName","pathNode":{"id":189,"name":"PopStatus","nameLocations":["1059:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"1059:9:1"},"referencedDeclaration":8,"src":"1059:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}}},"visibility":"public"},{"id":198,"nodeType":"VariableDeclaration","src":"1148:71:1","nodes":[],"constant":false,"documentation":{"id":193,"nodeType":"StructuredDocumentation","src":"1097:46:1","text":"@notice Active reservations for base names"},"functionSelector":"c5c95048","mutability":"mutable","name":"reservations","nameLocation":"1207:12:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string => struct IPopRules.Reservation)"},"typeName":{"id":197,"keyName":"baseName","keyNameLocation":"1163:8:1","keyType":{"id":194,"name":"string","nodeType":"ElementaryTypeName","src":"1156:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1148:51:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string => struct IPopRules.Reservation)"},"valueName":"reservation","valueNameLocation":"1187:11:1","valueType":{"id":196,"nodeType":"UserDefinedTypeName","pathNode":{"id":195,"name":"Reservation","nameLocations":["1175:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":63,"src":"1175:11:1"},"referencedDeclaration":63,"src":"1175:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage_ptr","typeString":"struct IPopRules.Reservation"}}},"visibility":"public"},{"id":202,"nodeType":"VariableDeclaration","src":"1283:55:1","nodes":[],"constant":true,"documentation":{"id":199,"nodeType":"StructuredDocumentation","src":"1226:52:1","text":"@notice Maximum time a base name can be reserved"},"functionSelector":"68e344e9","mutability":"constant","name":"MAX_RESERVATION_TIME","nameLocation":"1307:20:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":200,"name":"uint256","nodeType":"ElementaryTypeName","src":"1283:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132","id":201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1330:8:1","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_7257600_by_1","typeString":"int_const 7257600"},"value":"12"},"visibility":"public"},{"id":206,"nodeType":"VariableDeclaration","src":"1382:110:1","nodes":[],"constant":true,"documentation":{"id":203,"nodeType":"StructuredDocumentation","src":"1345:32:1","text":"@notice Namehash of .dot TLD"},"mutability":"constant","name":"DOT_NODE","nameLocation":"1407:8:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":204,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1382:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307833666365376431333634613839336532313362633432313237393262353137666663383866356231336238366338656639633864333930633361313337306365","id":205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1426:66:1","typeDescriptions":{"typeIdentifier":"t_rational_28860543197223043133013784600372423225309622540484740764100769870428629070030_by_1","typeString":"int_const 2886...(69 digits omitted)...0030"},"value":"0x3fce7d1364a893e213bc4212792b517ffc88f5b13b86c8ef9c8d390c3a1370ce"},"visibility":"private"},{"id":209,"nodeType":"VariableDeclaration","src":"1554:36:1","nodes":[],"constant":false,"documentation":{"id":207,"nodeType":"StructuredDocumentation","src":"1499:50:1","text":"@notice Authorized registry controller address"},"functionSelector":"11d812c3","mutability":"mutable","name":"dotRegistryController","nameLocation":"1569:21:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":208,"name":"address","nodeType":"ElementaryTypeName","src":"1554:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":214,"nodeType":"VariableDeclaration","src":"1734:25:1","nodes":[],"constant":false,"documentation":{"id":210,"nodeType":"StructuredDocumentation","src":"1597:74:1","text":"@dev Reserved storage space to allow for layout changes in the future."},"mutability":"mutable","name":"__gap","nameLocation":"1754:5:1","scope":1087,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":211,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":213,"length":{"hexValue":"3530","id":212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1742:2:1","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1734:11:1","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"},{"id":222,"nodeType":"ModifierDefinition","src":"1824:67:1","nodes":[],"body":{"id":221,"nodeType":"Block","src":"1848:43:1","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":217,"name":"_onlyRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1086,"src":"1858:13:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1858:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":219,"nodeType":"ExpressionStatement","src":"1858:15:1"},{"id":220,"nodeType":"PlaceholderStatement","src":"1883:1:1"}]},"documentation":{"id":215,"nodeType":"StructuredDocumentation","src":"1766:53:1","text":"@notice Restricts function to registry controller"},"name":"onlyRegistry","nameLocation":"1833:12:1","parameters":{"id":216,"nodeType":"ParameterList","parameters":[],"src":"1845:2:1"},"virtual":false,"visibility":"internal"},{"id":230,"nodeType":"FunctionDefinition","src":"1950:53:1","nodes":[],"body":{"id":229,"nodeType":"Block","src":"1964:39:1","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":226,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44568,"src":"1974:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1974:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":228,"nodeType":"ExpressionStatement","src":"1974:22:1"}]},"documentation":{"id":223,"nodeType":"StructuredDocumentation","src":"1897:48:1","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":224,"nodeType":"ParameterList","parameters":[],"src":"1961:2:1"},"returnParameters":{"id":225,"nodeType":"ParameterList","parameters":[],"src":"1964:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":251,"nodeType":"FunctionDefinition","src":"2144:181:1","nodes":[],"body":{"id":250,"nodeType":"Block","src":"2217:108:1","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":239,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2242:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2246:6:1","memberName":"sender","nodeType":"MemberAccess","src":"2242:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":238,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42008,"src":"2227:14:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2227:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":242,"nodeType":"ExpressionStatement","src":"2227:26:1"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":243,"name":"__ERC165_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43299,"src":"2263:13:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":245,"nodeType":"ExpressionStatement","src":"2263:15:1"},{"expression":{"id":248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":246,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"2288:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":247,"name":"_startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":233,"src":"2304:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2288:30:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":249,"nodeType":"ExpressionStatement","src":"2288:30:1"}]},"documentation":{"id":231,"nodeType":"StructuredDocumentation","src":"2009:130:1","text":"@notice Initializes the oracle with pricing parameters\n @param _startingPrice Base price in wei for No pop status users"},"implemented":true,"kind":"function","modifiers":[{"id":236,"kind":"modifierInvocation","modifierName":{"id":235,"name":"onlyInitializing","nameLocations":["2200:16:1"],"nodeType":"IdentifierPath","referencedDeclaration":44509,"src":"2200:16:1"},"nodeType":"ModifierInvocation","src":"2200:16:1"}],"name":"_popRulesInit","nameLocation":"2153:13:1","parameters":{"id":234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":233,"mutability":"mutable","name":"_startingPrice","nameLocation":"2175:14:1","nodeType":"VariableDeclaration","scope":251,"src":"2167:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":232,"name":"uint256","nodeType":"ElementaryTypeName","src":"2167:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2166:24:1"},"returnParameters":{"id":237,"nodeType":"ParameterList","parameters":[],"src":"2217:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":264,"nodeType":"FunctionDefinition","src":"2463:109:1","nodes":[],"body":{"id":263,"nodeType":"Block","src":"2526:46:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":260,"name":"_startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"2550:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":259,"name":"_popRulesInit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"2536:13:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":262,"nodeType":"ExpressionStatement","src":"2536:29:1"}]},"documentation":{"id":252,"nodeType":"StructuredDocumentation","src":"2331:127:1","text":"@notice Initializes the oracle (public entry point)\n @param _startingPrice Base price in wei for No pop status users"},"functionSelector":"fe4b84df","implemented":true,"kind":"function","modifiers":[{"id":257,"kind":"modifierInvocation","modifierName":{"id":256,"name":"initializer","nameLocations":["2514:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":44454,"src":"2514:11:1"},"nodeType":"ModifierInvocation","src":"2514:11:1"}],"name":"initialize","nameLocation":"2472:10:1","parameters":{"id":255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"mutability":"mutable","name":"_startingPrice","nameLocation":"2491:14:1","nodeType":"VariableDeclaration","scope":264,"src":"2483:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":253,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2482:24:1"},"returnParameters":{"id":258,"nodeType":"ParameterList","parameters":[],"src":"2526:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":286,"nodeType":"FunctionDefinition","src":"2608:164:1","nodes":[],"body":{"id":285,"nodeType":"Block","src":"2670:102:1","nodes":[],"statements":[{"expression":{"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":272,"name":"userPopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"2680:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_PopStatus_$8_$","typeString":"mapping(address => enum IPopRules.PopStatus)"}},"id":275,"indexExpression":{"expression":{"id":273,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2694:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2698:6:1","memberName":"sender","nodeType":"MemberAccess","src":"2694:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2680:25:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":276,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"2708:6:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"2680:34:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"id":278,"nodeType":"ExpressionStatement","src":"2680:34:1"},{"eventCall":{"arguments":[{"expression":{"id":280,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2746:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2750:6:1","memberName":"sender","nodeType":"MemberAccess","src":"2746:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":282,"name":"status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"2758:6:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}],"id":279,"name":"UserPopStatusSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32,"src":"2729:16:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_enum$_PopStatus_$8_$returns$__$","typeString":"function (address,enum IPopRules.PopStatus)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"EmitStatement","src":"2724:41:1"}]},"baseFunctions":[147],"documentation":{"id":265,"nodeType":"StructuredDocumentation","src":"2578:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"0848731f","implemented":true,"kind":"function","modifiers":[],"name":"setUserPopStatus","nameLocation":"2617:16:1","overrides":{"id":270,"nodeType":"OverrideSpecifier","overrides":[],"src":"2661:8:1"},"parameters":{"id":269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":268,"mutability":"mutable","name":"status","nameLocation":"2644:6:1","nodeType":"VariableDeclaration","scope":286,"src":"2634:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":267,"nodeType":"UserDefinedTypeName","pathNode":{"id":266,"name":"PopStatus","nameLocations":["2634:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"2634:9:1"},"referencedDeclaration":8,"src":"2634:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"src":"2633:18:1"},"returnParameters":{"id":271,"nodeType":"ParameterList","parameters":[],"src":"2670:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":375,"nodeType":"FunctionDefinition","src":"2808:994:1","nodes":[],"body":{"id":374,"nodeType":"Block","src":"2964:838:1","nodes":[],"statements":[{"assignments":[299],"declarations":[{"constant":false,"id":299,"mutability":"mutable","name":"totallength","nameLocation":"2982:11:1","nodeType":"VariableDeclaration","scope":374,"src":"2974:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":298,"name":"uint256","nodeType":"ElementaryTypeName","src":"2974:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":303,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":300,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":289,"src":"2996:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"id":301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3001:6:1","memberName":"strlen","nodeType":"MemberAccess","referencedDeclaration":6237,"src":"2996:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (uint256)"}},"id":302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2996:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2974:35:1"},{"assignments":[305],"declarations":[{"constant":false,"id":305,"mutability":"mutable","name":"trailingDigits","nameLocation":"3027:14:1","nodeType":"VariableDeclaration","scope":374,"src":"3019:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":304,"name":"uint256","nodeType":"ElementaryTypeName","src":"3019:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":309,"initialValue":{"arguments":[{"id":307,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":289,"src":"3065:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":306,"name":"_countTrailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"3044:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) pure returns (uint256)"}},"id":308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3044:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3019:51:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":311,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"3089:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"32","id":312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3107:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3089:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"4e616d652063616e2068617665206d6178696d756d203220646967697420737566666978","id":315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3119:38:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_63492d9571144dcb7601da998aa9bd05b8551a271ab715f8e26ba8398bcee36d","typeString":"literal_string \"Name can have maximum 2 digit suffix\""},"value":"Name can have maximum 2 digit suffix"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63492d9571144dcb7601da998aa9bd05b8551a271ab715f8e26ba8398bcee36d","typeString":"literal_string \"Name can have maximum 2 digit suffix\""}],"id":314,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"3110:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3110:48:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":310,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3081:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3081:78:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":318,"nodeType":"ExpressionStatement","src":"3081:78:1"},{"assignments":[320],"declarations":[{"constant":false,"id":320,"mutability":"mutable","name":"baselength","nameLocation":"3178:10:1","nodeType":"VariableDeclaration","scope":374,"src":"3170:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":319,"name":"uint256","nodeType":"ElementaryTypeName","src":"3170:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":324,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":321,"name":"totallength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":299,"src":"3191:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":322,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"3205:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3191:28:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3170:49:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":325,"name":"baselength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"3234:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"35","id":326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3248:1:1","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"3234:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":334,"nodeType":"IfStatement","src":"3230:100:1","trueBody":{"id":333,"nodeType":"Block","src":"3251:79:1","statements":[{"expression":{"components":[{"expression":{"id":328,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3273:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3283:8:1","memberName":"Reserved","nodeType":"MemberAccess","referencedDeclaration":7,"src":"3273:18:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"526573657276656420666f7220476f7665726e616e6365","id":330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3293:25:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7956ca3f0978aa4071bf09e113e895a6f37785ed864786f858d0445711ea48f","typeString":"literal_string \"Reserved for Governance\""},"value":"Reserved for Governance"}],"id":331,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3272:47:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_stringliteral_b7956ca3f0978aa4071bf09e113e895a6f37785ed864786f858d0445711ea48f_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Reserved for Governance\")"}},"functionReturnParameters":297,"id":332,"nodeType":"Return","src":"3265:54:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":335,"name":"baselength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"3344:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"36","id":336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3358:1:1","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"3344:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":338,"name":"baselength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":320,"src":"3363:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"38","id":339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3377:1:1","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"3363:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3344:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":358,"nodeType":"IfStatement","src":"3340:271:1","trueBody":{"id":357,"nodeType":"Block","src":"3380:231:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":342,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"3398:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3416:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3398:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":351,"nodeType":"IfStatement","src":"3394:126:1","trueBody":{"id":350,"nodeType":"Block","src":"3419:101:1","statements":[{"expression":{"components":[{"expression":{"id":345,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3445:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3455:7:1","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":5,"src":"3445:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"5265717569726573204c6967687420706572736f6e686f6f6420766572696669636174696f6e","id":347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3464:40:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_68ecbc02e8d7f383157306e048c0a9c1f32862047503a6eabba9734ed82ac713","typeString":"literal_string \"Requires Light personhood verification\""},"value":"Requires Light personhood verification"}],"id":348,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3444:61:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_stringliteral_68ecbc02e8d7f383157306e048c0a9c1f32862047503a6eabba9734ed82ac713_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Requires Light personhood verification\")"}},"functionReturnParameters":297,"id":349,"nodeType":"Return","src":"3437:68:1"}]}},{"expression":{"components":[{"expression":{"id":352,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3541:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3551:7:1","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":6,"src":"3541:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"52657175697265732046756c6c20706572736f6e686f6f6420766572696669636174696f6e","id":354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3560:39:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71","typeString":"literal_string \"Requires Full personhood verification\""},"value":"Requires Full personhood verification"}],"id":355,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3540:60:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Requires Full personhood verification\")"}},"functionReturnParameters":297,"id":356,"nodeType":"Return","src":"3533:67:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":359,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"3625:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3643:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3625:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":368,"nodeType":"IfStatement","src":"3621:97:1","trueBody":{"id":367,"nodeType":"Block","src":"3646:72:1","statements":[{"expression":{"components":[{"expression":{"id":362,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3668:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3678:8:1","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":4,"src":"3668:18:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"417661696c61626c6520746f20616c6c","id":364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3688:18:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_e245709084d01d1a9a8ee214a6f7bf853604ec8557b914522d179e589afba242","typeString":"literal_string \"Available to all\""},"value":"Available to all"}],"id":365,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3667:40:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_stringliteral_e245709084d01d1a9a8ee214a6f7bf853604ec8557b914522d179e589afba242_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Available to all\")"}},"functionReturnParameters":297,"id":366,"nodeType":"Return","src":"3660:47:1"}]}},{"expression":{"components":[{"expression":{"id":369,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"3736:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3746:7:1","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":6,"src":"3736:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"52657175697265732046756c6c20706572736f6e686f6f6420766572696669636174696f6e","id":371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3755:39:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71","typeString":"literal_string \"Requires Full personhood verification\""},"value":"Requires Full personhood verification"}],"id":372,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3735:60:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Requires Full personhood verification\")"}},"functionReturnParameters":297,"id":373,"nodeType":"Return","src":"3728:67:1"}]},"baseFunctions":[74],"documentation":{"id":287,"nodeType":"StructuredDocumentation","src":"2778:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"3017fa33","implemented":true,"kind":"function","modifiers":[],"name":"classifyName","nameLocation":"2817:12:1","overrides":{"id":291,"nodeType":"OverrideSpecifier","overrides":[],"src":"2888:8:1"},"parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"name","nameLocation":"2846:4:1","nodeType":"VariableDeclaration","scope":375,"src":"2830:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":288,"name":"string","nodeType":"ElementaryTypeName","src":"2830:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2829:22:1"},"returnParameters":{"id":297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":294,"mutability":"mutable","name":"requirement","nameLocation":"2924:11:1","nodeType":"VariableDeclaration","scope":375,"src":"2914:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":293,"nodeType":"UserDefinedTypeName","pathNode":{"id":292,"name":"PopStatus","nameLocations":["2914:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"2914:9:1"},"referencedDeclaration":8,"src":"2914:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":296,"mutability":"mutable","name":"message","nameLocation":"2951:7:1","nodeType":"VariableDeclaration","scope":375,"src":"2937:21:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":295,"name":"string","nodeType":"ElementaryTypeName","src":"2937:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2913:46:1"},"scope":1087,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":451,"nodeType":"FunctionDefinition","src":"3838:993:1","nodes":[],"body":{"id":450,"nodeType":"Block","src":"3987:844:1","nodes":[],"statements":[{"assignments":[388,null],"declarations":[{"constant":false,"id":388,"mutability":"mutable","name":"requiredStatus","nameLocation":"4008:14:1","nodeType":"VariableDeclaration","scope":450,"src":"3998:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":387,"nodeType":"UserDefinedTypeName","pathNode":{"id":386,"name":"PopStatus","nameLocations":["3998:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"3998:9:1"},"referencedDeclaration":8,"src":"3998:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},null],"id":392,"initialValue":{"arguments":[{"id":390,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"4040:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":389,"name":"classifyName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"4027:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$8_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4027:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"3997:48:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":394,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":388,"src":"4076:14:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":395,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"4094:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4104:7:1","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":5,"src":"4094:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"4076:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"42617365207265736572766174696f6e2072657175697265732061206c6974652d656c696769626c65206e616d65","id":399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4134:48:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7191ec14fb29d6cbf8d7745d3989620c29418d9b4a8e8dfed3f3a2e83cf3d9b","typeString":"literal_string \"Base reservation requires a lite-eligible name\""},"value":"Base reservation requires a lite-eligible name"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7191ec14fb29d6cbf8d7745d3989620c29418d9b4a8e8dfed3f3a2e83cf3d9b","typeString":"literal_string \"Base reservation requires a lite-eligible name\""}],"id":398,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"4125:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4125:58:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4055:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4055:138:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":402,"nodeType":"ExpressionStatement","src":"4055:138:1"},{"assignments":[404],"declarations":[{"constant":false,"id":404,"mutability":"mutable","name":"strippedBase","nameLocation":"4218:12:1","nodeType":"VariableDeclaration","scope":450,"src":"4204:26:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":403,"name":"string","nodeType":"ElementaryTypeName","src":"4204:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":408,"initialValue":{"arguments":[{"id":406,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"4246:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":405,"name":"_stripDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"4233:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (string memory)"}},"id":407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4233:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4204:47:1"},{"assignments":[411],"declarations":[{"constant":false,"id":411,"mutability":"mutable","name":"existingReservation","nameLocation":"4281:19:1","nodeType":"VariableDeclaration","scope":450,"src":"4262:38:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":410,"nodeType":"UserDefinedTypeName","pathNode":{"id":409,"name":"Reservation","nameLocations":["4262:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":63,"src":"4262:11:1"},"referencedDeclaration":63,"src":"4262:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":415,"initialValue":{"baseExpression":{"id":412,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"4303:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":414,"indexExpression":{"id":413,"name":"strippedBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4316:12:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4303:26:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4262:67:1"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":416,"name":"existingReservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"4343:19:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4363:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"4343:25:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4380:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4372:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":418,"name":"address","nodeType":"ElementaryTypeName","src":"4372:7:1","typeDescriptions":{}}},"id":421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4372:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4343:39:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":449,"nodeType":"IfStatement","src":"4339:486:1","trueBody":{"id":448,"nodeType":"Block","src":"4384:441:1","statements":[{"assignments":[424],"declarations":[{"constant":false,"id":424,"mutability":"mutable","name":"expiryTime","nameLocation":"4584:10:1","nodeType":"VariableDeclaration","scope":448,"src":"4577:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":423,"name":"uint64","nodeType":"ElementaryTypeName","src":"4577:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":432,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":427,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4604:5:1","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4610:9:1","memberName":"timestamp","nodeType":"MemberAccess","src":"4604:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":429,"name":"MAX_RESERVATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":202,"src":"4622:20:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4604:38:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4597:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":425,"name":"uint64","nodeType":"ElementaryTypeName","src":"4597:6:1","typeDescriptions":{}}},"id":431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4597:46:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4577:66:1"},{"expression":{"id":440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":433,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"4657:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":435,"indexExpression":{"id":434,"name":"strippedBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4670:12:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4657:26:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":437,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":380,"src":"4706:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":438,"name":"expiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"4728:10:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":436,"name":"Reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"4686:11:1","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Reservation_$63_storage_ptr_$","typeString":"type(struct IPopRules.Reservation storage pointer)"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4699:5:1","4719:7:1"],"names":["owner","expires"],"nodeType":"FunctionCall","src":"4686:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"src":"4657:83:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"id":441,"nodeType":"ExpressionStatement","src":"4657:83:1"},{"eventCall":{"arguments":[{"id":443,"name":"strippedBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4776:12:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":444,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":380,"src":"4790:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":445,"name":"expiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"4803:10:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":442,"name":"BaseNameReserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17,"src":"4759:16:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint64_$returns$__$","typeString":"function (string memory,address,uint64)"}},"id":446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:55:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":447,"nodeType":"EmitStatement","src":"4754:60:1"}]}}]},"baseFunctions":[82],"documentation":{"id":376,"nodeType":"StructuredDocumentation","src":"3808:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"35696fa7","implemented":true,"kind":"function","modifiers":[{"id":384,"kind":"modifierInvocation","modifierName":{"id":383,"name":"onlyRegistry","nameLocations":["3970:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":222,"src":"3970:12:1"},"nodeType":"ModifierInvocation","src":"3970:12:1"}],"name":"reserveBaseName","nameLocation":"3847:15:1","overrides":{"id":382,"nodeType":"OverrideSpecifier","overrides":[],"src":"3953:8:1"},"parameters":{"id":381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":378,"mutability":"mutable","name":"name","nameLocation":"3888:4:1","nodeType":"VariableDeclaration","scope":451,"src":"3872:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":377,"name":"string","nodeType":"ElementaryTypeName","src":"3872:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":380,"mutability":"mutable","name":"userAddress","nameLocation":"3910:11:1","nodeType":"VariableDeclaration","scope":451,"src":"3902:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":379,"name":"address","nodeType":"ElementaryTypeName","src":"3902:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3862:65:1"},"returnParameters":{"id":385,"nodeType":"ParameterList","parameters":[],"src":"3987:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":470,"nodeType":"FunctionDefinition","src":"4867:194:1","nodes":[],"body":{"id":469,"nodeType":"Block","src":"4943:118:1","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":461,"name":"dotRegistryController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"4974:21:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":462,"name":"newRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"4997:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":460,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"4958:15:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4958:51:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":464,"nodeType":"EmitStatement","src":"4953:56:1"},{"expression":{"id":467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":465,"name":"dotRegistryController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"5019:21:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":466,"name":"newRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":454,"src":"5043:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5019:35:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":468,"nodeType":"ExpressionStatement","src":"5019:35:1"}]},"baseFunctions":[140],"documentation":{"id":452,"nodeType":"StructuredDocumentation","src":"4837:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"c5b9e44e","implemented":true,"kind":"function","modifiers":[{"id":458,"kind":"modifierInvocation","modifierName":{"id":457,"name":"onlyOwner","nameLocations":["4933:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":42043,"src":"4933:9:1"},"nodeType":"ModifierInvocation","src":"4933:9:1"}],"name":"updateDotRegistry","nameLocation":"4876:17:1","overrides":{"id":456,"nodeType":"OverrideSpecifier","overrides":[],"src":"4924:8:1"},"parameters":{"id":455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":454,"mutability":"mutable","name":"newRegistry","nameLocation":"4902:11:1","nodeType":"VariableDeclaration","scope":470,"src":"4894:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":453,"name":"address","nodeType":"ElementaryTypeName","src":"4894:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4893:21:1"},"returnParameters":{"id":459,"nodeType":"ParameterList","parameters":[],"src":"4943:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":490,"nodeType":"FunctionDefinition","src":"5097:181:1","nodes":[],"body":{"id":489,"nodeType":"Block","src":"5186:92:1","nodes":[],"statements":[{"assignments":[480],"declarations":[{"constant":false,"id":480,"mutability":"mutable","name":"digits","nameLocation":"5204:6:1","nodeType":"VariableDeclaration","scope":489,"src":"5196:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":479,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":484,"initialValue":{"arguments":[{"id":482,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":473,"src":"5234:8:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":481,"name":"_countTrailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"5213:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) pure returns (uint256)"}},"id":483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5213:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5196:47:1"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":485,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":480,"src":"5260:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5270:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5260:11:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":478,"id":488,"nodeType":"Return","src":"5253:18:1"}]},"baseFunctions":[134],"documentation":{"id":471,"nodeType":"StructuredDocumentation","src":"5067:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"b4956ade","implemented":true,"kind":"function","modifiers":[],"name":"isBaseName","nameLocation":"5106:10:1","overrides":{"id":475,"nodeType":"OverrideSpecifier","overrides":[],"src":"5155:8:1"},"parameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"mutability":"mutable","name":"baseName","nameLocation":"5133:8:1","nodeType":"VariableDeclaration","scope":490,"src":"5117:24:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":472,"name":"string","nodeType":"ElementaryTypeName","src":"5117:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5116:26:1"},"returnParameters":{"id":478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":477,"mutability":"mutable","name":"isBase","nameLocation":"5178:6:1","nodeType":"VariableDeclaration","scope":490,"src":"5173:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":476,"name":"bool","nodeType":"ElementaryTypeName","src":"5173:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5172:13:1"},"scope":1087,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":515,"nodeType":"FunctionDefinition","src":"5314:296:1","nodes":[],"body":{"id":514,"nodeType":"Block","src":"5490:120:1","nodes":[],"statements":[{"assignments":[503],"declarations":[{"constant":false,"id":503,"mutability":"mutable","name":"reserved","nameLocation":"5519:8:1","nodeType":"VariableDeclaration","scope":514,"src":"5500:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":502,"nodeType":"UserDefinedTypeName","pathNode":{"id":501,"name":"Reservation","nameLocations":["5500:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":63,"src":"5500:11:1"},"referencedDeclaration":63,"src":"5500:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":507,"initialValue":{"baseExpression":{"id":504,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"5530:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":506,"indexExpression":{"id":505,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":493,"src":"5543:8:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5530:22:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5500:52:1"},{"expression":{"components":[{"expression":{"id":508,"name":"reserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":503,"src":"5570:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":509,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5579:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"5570:14:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":510,"name":"reserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":503,"src":"5586:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5595:7:1","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":62,"src":"5586:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5569:34:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint64_$","typeString":"tuple(address,uint64)"}},"functionReturnParameters":500,"id":513,"nodeType":"Return","src":"5562:41:1"}]},"baseFunctions":[92],"documentation":{"id":491,"nodeType":"StructuredDocumentation","src":"5284:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"8ac7f0f5","implemented":true,"kind":"function","modifiers":[],"name":"getBaseNameReservation","nameLocation":"5323:22:1","overrides":{"id":495,"nodeType":"OverrideSpecifier","overrides":[],"src":"5410:8:1"},"parameters":{"id":494,"nodeType":"ParameterList","parameters":[{"constant":false,"id":493,"mutability":"mutable","name":"baseName","nameLocation":"5362:8:1","nodeType":"VariableDeclaration","scope":515,"src":"5346:24:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":492,"name":"string","nodeType":"ElementaryTypeName","src":"5346:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5345:26:1"},"returnParameters":{"id":500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":497,"mutability":"mutable","name":"reservationOwner","nameLocation":"5444:16:1","nodeType":"VariableDeclaration","scope":515,"src":"5436:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":496,"name":"address","nodeType":"ElementaryTypeName","src":"5436:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":499,"mutability":"mutable","name":"expiryTimestamp","nameLocation":"5469:15:1","nodeType":"VariableDeclaration","scope":515,"src":"5462:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":498,"name":"uint64","nodeType":"ElementaryTypeName","src":"5462:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5435:50:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":565,"nodeType":"FunctionDefinition","src":"5646:490:1","nodes":[],"body":{"id":564,"nodeType":"Block","src":"5835:301:1","nodes":[],"statements":[{"assignments":[530],"declarations":[{"constant":false,"id":530,"mutability":"mutable","name":"reservation","nameLocation":"5864:11:1","nodeType":"VariableDeclaration","scope":564,"src":"5845:30:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":529,"nodeType":"UserDefinedTypeName","pathNode":{"id":528,"name":"Reservation","nameLocations":["5845:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":63,"src":"5845:11:1"},"referencedDeclaration":63,"src":"5845:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":534,"initialValue":{"baseExpression":{"id":531,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"5878:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":533,"indexExpression":{"id":532,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"5891:8:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5878:22:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5845:55:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":535,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"5914:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5926:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"5914:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5943:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5935:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":537,"name":"address","nodeType":"ElementaryTypeName","src":"5935:7:1","typeDescriptions":{}}},"id":540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5935:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5914:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":542,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"5949:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5961:7:1","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":62,"src":"5949:19:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":544,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5971:5:1","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5977:9:1","memberName":"timestamp","nodeType":"MemberAccess","src":"5971:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5949:37:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5914:72:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":556,"nodeType":"IfStatement","src":"5910:156:1","trueBody":{"id":555,"nodeType":"Block","src":"5988:78:1","statements":[{"expression":{"components":[{"hexValue":"74727565","id":548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6010:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"expression":{"id":549,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"6016:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6028:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"6016:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":551,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"6035:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6047:7:1","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":62,"src":"6035:19:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6009:46:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$_t_uint64_$","typeString":"tuple(bool,address,uint64)"}},"functionReturnParameters":527,"id":554,"nodeType":"Return","src":"6002:53:1"}]}},{"expression":{"components":[{"hexValue":"66616c7365","id":557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6083:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"expression":{"id":558,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"6090:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":559,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6102:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"6090:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":560,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"6109:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6121:7:1","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":62,"src":"6109:19:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":562,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6082:47:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$_t_uint64_$","typeString":"tuple(bool,address,uint64)"}},"functionReturnParameters":527,"id":563,"nodeType":"Return","src":"6075:54:1"}]},"baseFunctions":[104],"documentation":{"id":516,"nodeType":"StructuredDocumentation","src":"5616:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"91809994","implemented":true,"kind":"function","modifiers":[],"name":"isBaseNameReserved","nameLocation":"5655:18:1","overrides":{"id":520,"nodeType":"OverrideSpecifier","overrides":[],"src":"5738:8:1"},"parameters":{"id":519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":518,"mutability":"mutable","name":"baseName","nameLocation":"5690:8:1","nodeType":"VariableDeclaration","scope":565,"src":"5674:24:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":517,"name":"string","nodeType":"ElementaryTypeName","src":"5674:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5673:26:1"},"returnParameters":{"id":527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":522,"mutability":"mutable","name":"isReserved","nameLocation":"5769:10:1","nodeType":"VariableDeclaration","scope":565,"src":"5764:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":521,"name":"bool","nodeType":"ElementaryTypeName","src":"5764:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":524,"mutability":"mutable","name":"reservationOwner","nameLocation":"5789:16:1","nodeType":"VariableDeclaration","scope":565,"src":"5781:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":523,"name":"address","nodeType":"ElementaryTypeName","src":"5781:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":526,"mutability":"mutable","name":"expiryTimestamp","nameLocation":"5814:15:1","nodeType":"VariableDeclaration","scope":565,"src":"5807:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":525,"name":"uint64","nodeType":"ElementaryTypeName","src":"5807:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5763:67:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":701,"nodeType":"FunctionDefinition","src":"6172:1410:1","nodes":[],"body":{"id":700,"nodeType":"Block","src":"6360:1222:1","nodes":[],"statements":[{"expression":{"arguments":[{"id":578,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"6395:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":579,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"6401:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":577,"name":"_enforceReservationRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"6370:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_calldata_ptr_$_t_address_$returns$__$","typeString":"function (string calldata,address) view"}},"id":580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6370:43:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":581,"nodeType":"ExpressionStatement","src":"6370:43:1"},{"assignments":[584,586],"declarations":[{"constant":false,"id":584,"mutability":"mutable","name":"requiredStatus","nameLocation":"6435:14:1","nodeType":"VariableDeclaration","scope":700,"src":"6425:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":583,"nodeType":"UserDefinedTypeName","pathNode":{"id":582,"name":"PopStatus","nameLocations":["6425:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"6425:9:1"},"referencedDeclaration":8,"src":"6425:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":586,"mutability":"mutable","name":"classification","nameLocation":"6465:14:1","nodeType":"VariableDeclaration","scope":700,"src":"6451:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":585,"name":"string","nodeType":"ElementaryTypeName","src":"6451:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":590,"initialValue":{"arguments":[{"id":588,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"6496:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":587,"name":"classifyName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"6483:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$8_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6483:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"6424:77:1"},{"assignments":[593],"declarations":[{"constant":false,"id":593,"mutability":"mutable","name":"userStatus","nameLocation":"6521:10:1","nodeType":"VariableDeclaration","scope":700,"src":"6511:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":592,"nodeType":"UserDefinedTypeName","pathNode":{"id":591,"name":"PopStatus","nameLocations":["6511:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"6511:9:1"},"referencedDeclaration":8,"src":"6511:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"id":597,"initialValue":{"baseExpression":{"id":594,"name":"userPopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"6534:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_PopStatus_$8_$","typeString":"mapping(address => enum IPopRules.PopStatus)"}},"id":596,"indexExpression":{"id":595,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"6548:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6534:26:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"VariableDeclarationStatement","src":"6511:49:1"},{"expression":{"id":610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":598,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"6571:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6580:5:1","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":48,"src":"6571:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":601,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"6588:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":602,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"6602:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6612:8:1","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":4,"src":"6602:18:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"6588:32:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6637:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6588:50:1","trueExpression":{"arguments":[{"id":606,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"6629:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":605,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":850,"src":"6623:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) view returns (uint256)"}},"id":607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6623:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6571:67:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":611,"nodeType":"ExpressionStatement","src":"6571:67:1"},{"expression":{"id":616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":612,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"6648:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6657:6:1","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":51,"src":"6648:15:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":615,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":584,"src":"6666:14:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"6648:32:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"id":617,"nodeType":"ExpressionStatement","src":"6648:32:1"},{"expression":{"id":622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":618,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"6690:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6699:10:1","memberName":"userStatus","nodeType":"MemberAccess","referencedDeclaration":54,"src":"6690:19:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":621,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"6712:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"6690:32:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"id":623,"nodeType":"ExpressionStatement","src":"6690:32:1"},{"expression":{"id":628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":624,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"6732:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6741:7:1","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":56,"src":"6732:16:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":627,"name":"classification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"6751:14:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"6732:33:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":629,"nodeType":"ExpressionStatement","src":"6732:33:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":631,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":584,"src":"6784:14:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":632,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"6802:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6812:8:1","memberName":"Reserved","nodeType":"MemberAccess","referencedDeclaration":7,"src":"6802:18:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"6784:36:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":636,"name":"classification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":586,"src":"6831:14:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":635,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"6822:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6822:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":630,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6776:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6776:71:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":639,"nodeType":"ExpressionStatement","src":"6776:71:1"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":640,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":584,"src":"6862:14:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":641,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"6880:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6890:7:1","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":6,"src":"6880:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"6862:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":655,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":584,"src":"7055:14:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":656,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"7073:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":657,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7083:7:1","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":5,"src":"7073:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"7055:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":695,"nodeType":"Block","src":"7295:255:1","statements":[{"assignments":[676],"declarations":[{"constant":false,"id":676,"mutability":"mutable","name":"trailingDigits","nameLocation":"7317:14:1","nodeType":"VariableDeclaration","scope":695,"src":"7309:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":675,"name":"uint256","nodeType":"ElementaryTypeName","src":"7309:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":680,"initialValue":{"arguments":[{"id":678,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":568,"src":"7355:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":677,"name":"_countTrailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"7334:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) pure returns (uint256)"}},"id":679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7334:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7309:51:1"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":682,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":676,"src":"7399:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7417:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7399:19:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":685,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"7422:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":686,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"7436:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7446:7:1","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":5,"src":"7436:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"7422:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7399:54:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"506572736f6e686f6f64204c6974652063616e6e6f742072656769737465722062617365206e616d6573","id":691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7480:44:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_2196b8237935336420b8c908e66c0f142188bbf835b9e054f1733eca8d6eb502","typeString":"literal_string \"Personhood Lite cannot register base names\""},"value":"Personhood Lite cannot register base names"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2196b8237935336420b8c908e66c0f142188bbf835b9e054f1733eca8d6eb502","typeString":"literal_string \"Personhood Lite cannot register base names\""}],"id":690,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"7471:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7471:54:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":681,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7374:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7374:165:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":694,"nodeType":"ExpressionStatement","src":"7374:165:1"}]},"id":696,"nodeType":"IfStatement","src":"7051:499:1","trueBody":{"id":674,"nodeType":"Block","src":"7092:197:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":660,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"7131:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":661,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"7145:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7155:7:1","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":5,"src":"7145:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"7131:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":664,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"7166:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":665,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"7180:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7190:7:1","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":6,"src":"7180:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"7166:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7131:66:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"526571756972657320506572736f6e686f6f64204c69746520766572696669636174696f6e","id":670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7224:39:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_e61bf021a631c1ed9b03b15bf0ff748ddf6d66e356c6301564a716f80911fdd7","typeString":"literal_string \"Requires Personhood Lite verification\""},"value":"Requires Personhood Lite verification"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e61bf021a631c1ed9b03b15bf0ff748ddf6d66e356c6301564a716f80911fdd7","typeString":"literal_string \"Requires Personhood Lite verification\""}],"id":669,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"7215:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7215:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":659,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7106:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7106:172:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":673,"nodeType":"ExpressionStatement","src":"7106:172:1"}]}},"id":697,"nodeType":"IfStatement","src":"6858:692:1","trueBody":{"id":654,"nodeType":"Block","src":"6899:146:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":645,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"6938:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":646,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"6952:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6962:7:1","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":6,"src":"6952:17:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"6938:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"52657175697265732046756c6c20506572736f6e686f6f6420766572696669636174696f6e","id":650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6980:39:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_44ac9a5113b90ab4f99691399c218699dbf43b454930f2cfc95c461314fe2803","typeString":"literal_string \"Requires Full Personhood verification\""},"value":"Requires Full Personhood verification"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_44ac9a5113b90ab4f99691399c218699dbf43b454930f2cfc95c461314fe2803","typeString":"literal_string \"Requires Full Personhood verification\""}],"id":649,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"6971:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6971:49:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":644,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6913:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6913:121:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":653,"nodeType":"ExpressionStatement","src":"6913:121:1"}]}},{"expression":{"id":698,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":575,"src":"7567:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"functionReturnParameters":576,"id":699,"nodeType":"Return","src":"7560:15:1"}]},"baseFunctions":[115],"documentation":{"id":566,"nodeType":"StructuredDocumentation","src":"6142:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"6bbfce2b","implemented":true,"kind":"function","modifiers":[],"name":"priceWithCheck","nameLocation":"6181:14:1","overrides":{"id":572,"nodeType":"OverrideSpecifier","overrides":[],"src":"6299:8:1"},"parameters":{"id":571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":568,"mutability":"mutable","name":"name","nameLocation":"6221:4:1","nodeType":"VariableDeclaration","scope":701,"src":"6205:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":567,"name":"string","nodeType":"ElementaryTypeName","src":"6205:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":570,"mutability":"mutable","name":"userAddress","nameLocation":"6243:11:1","nodeType":"VariableDeclaration","scope":701,"src":"6235:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":569,"name":"address","nodeType":"ElementaryTypeName","src":"6235:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6195:65:1"},"returnParameters":{"id":576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":575,"mutability":"mutable","name":"metadata","nameLocation":"6346:8:1","nodeType":"VariableDeclaration","scope":701,"src":"6325:29:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta"},"typeName":{"id":574,"nodeType":"UserDefinedTypeName","pathNode":{"id":573,"name":"PriceWithMeta","nameLocations":["6325:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"6325:13:1"},"referencedDeclaration":57,"src":"6325:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_storage_ptr","typeString":"struct IPopRules.PriceWithMeta"}},"visibility":"internal"}],"src":"6324:31:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":811,"nodeType":"FunctionDefinition","src":"7618:1009:1","nodes":[],"body":{"id":810,"nodeType":"Block","src":"7809:818:1","nodes":[],"statements":[{"assignments":[715,717],"declarations":[{"constant":false,"id":715,"mutability":"mutable","name":"requiredStatus","nameLocation":"7830:14:1","nodeType":"VariableDeclaration","scope":810,"src":"7820:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":714,"nodeType":"UserDefinedTypeName","pathNode":{"id":713,"name":"PopStatus","nameLocations":["7820:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"7820:9:1"},"referencedDeclaration":8,"src":"7820:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":717,"mutability":"mutable","name":"classification","nameLocation":"7860:14:1","nodeType":"VariableDeclaration","scope":810,"src":"7846:28:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":716,"name":"string","nodeType":"ElementaryTypeName","src":"7846:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":721,"initialValue":{"arguments":[{"id":719,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":704,"src":"7891:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":718,"name":"classifyName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":375,"src":"7878:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$8_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7878:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$8_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"7819:77:1"},{"assignments":[724],"declarations":[{"constant":false,"id":724,"mutability":"mutable","name":"userStatus","nameLocation":"7916:10:1","nodeType":"VariableDeclaration","scope":810,"src":"7906:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":723,"nodeType":"UserDefinedTypeName","pathNode":{"id":722,"name":"PopStatus","nameLocations":["7906:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":8,"src":"7906:9:1"},"referencedDeclaration":8,"src":"7906:9:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"id":728,"initialValue":{"baseExpression":{"id":725,"name":"userPopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"7929:13:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_enum$_PopStatus_$8_$","typeString":"mapping(address => enum IPopRules.PopStatus)"}},"id":727,"indexExpression":{"id":726,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":706,"src":"7943:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7929:26:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"VariableDeclarationStatement","src":"7906:49:1"},{"expression":{"id":741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":729,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"7966:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7975:5:1","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":48,"src":"7966:14:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"},"id":735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":732,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"7983:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":733,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"7997:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8007:8:1","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":4,"src":"7997:18:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"7983:32:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8032:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7983:50:1","trueExpression":{"arguments":[{"id":737,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":704,"src":"8024:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":736,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":850,"src":"8018:5:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) view returns (uint256)"}},"id":738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8018:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7966:67:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":742,"nodeType":"ExpressionStatement","src":"7966:67:1"},{"expression":{"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":743,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"8043:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8052:6:1","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":51,"src":"8043:15:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":746,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"8061:14:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"8043:32:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"id":748,"nodeType":"ExpressionStatement","src":"8043:32:1"},{"expression":{"id":753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":749,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"8085:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8094:10:1","memberName":"userStatus","nodeType":"MemberAccess","referencedDeclaration":54,"src":"8085:19:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":752,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":724,"src":"8107:10:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"8085:32:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"id":754,"nodeType":"ExpressionStatement","src":"8085:32:1"},{"expression":{"id":759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":755,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"8127:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8136:7:1","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":56,"src":"8127:16:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":758,"name":"classification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"8146:14:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8127:33:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":760,"nodeType":"ExpressionStatement","src":"8127:33:1"},{"assignments":[762],"declarations":[{"constant":false,"id":762,"mutability":"mutable","name":"baseName","nameLocation":"8185:8:1","nodeType":"VariableDeclaration","scope":810,"src":"8171:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":761,"name":"string","nodeType":"ElementaryTypeName","src":"8171:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":766,"initialValue":{"arguments":[{"id":764,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":704,"src":"8209:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":763,"name":"_stripDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"8196:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (string memory)"}},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"8171:43:1"},{"assignments":[769],"declarations":[{"constant":false,"id":769,"mutability":"mutable","name":"reservation","nameLocation":"8243:11:1","nodeType":"VariableDeclaration","scope":810,"src":"8224:30:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":768,"nodeType":"UserDefinedTypeName","pathNode":{"id":767,"name":"Reservation","nameLocations":["8224:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":63,"src":"8224:11:1"},"referencedDeclaration":63,"src":"8224:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":773,"initialValue":{"baseExpression":{"id":770,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"8257:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":772,"indexExpression":{"id":771,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":762,"src":"8270:8:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8257:22:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8224:55:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":774,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"8307:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"8307:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8336:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8328:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":776,"name":"address","nodeType":"ElementaryTypeName","src":"8328:7:1","typeDescriptions":{}}},"id":779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8328:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8307:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":781,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"8342:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8354:7:1","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":62,"src":"8342:19:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":783,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"8364:5:1","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8370:9:1","memberName":"timestamp","nodeType":"MemberAccess","src":"8364:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8342:37:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8307:72:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":787,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"8399:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":788,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8411:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"8399:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":789,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":706,"src":"8420:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8399:32:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8307:124:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":807,"nodeType":"IfStatement","src":"8290:305:1","trueBody":{"id":806,"nodeType":"Block","src":"8442:153:1","statements":[{"expression":{"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":792,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"8456:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8465:7:1","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":56,"src":"8456:16:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"42617365206e616d6520726573657276656420666f72206f726967696e616c204c6974652072656769737472616e74","id":795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8475:49:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_79a01a294a67387a7edaa4823021914cdb681481f514745448d051863f0b7823","typeString":"literal_string \"Base name reserved for original Lite registrant\""},"value":"Base name reserved for original Lite registrant"},"src":"8456:68:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":797,"nodeType":"ExpressionStatement","src":"8456:68:1"},{"expression":{"id":804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":798,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"8538:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8547:6:1","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":51,"src":"8538:15:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":801,"name":"IPopRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156,"src":"8556:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPopRules_$156_$","typeString":"type(contract IPopRules)"}},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8566:9:1","memberName":"PopStatus","nodeType":"MemberAccess","referencedDeclaration":8,"src":"8556:19:1","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$8_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8576:8:1","memberName":"Reserved","nodeType":"MemberAccess","referencedDeclaration":7,"src":"8556:28:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"src":"8538:46:1","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$8","typeString":"enum IPopRules.PopStatus"}},"id":805,"nodeType":"ExpressionStatement","src":"8538:46:1"}]}},{"expression":{"id":808,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":711,"src":"8612:8:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"functionReturnParameters":712,"id":809,"nodeType":"Return","src":"8605:15:1"}]},"baseFunctions":[126],"documentation":{"id":702,"nodeType":"StructuredDocumentation","src":"7588:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"dcd62573","implemented":true,"kind":"function","modifiers":[],"name":"priceWithoutCheck","nameLocation":"7627:17:1","overrides":{"id":708,"nodeType":"OverrideSpecifier","overrides":[],"src":"7748:8:1"},"parameters":{"id":707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":704,"mutability":"mutable","name":"name","nameLocation":"7670:4:1","nodeType":"VariableDeclaration","scope":811,"src":"7654:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":703,"name":"string","nodeType":"ElementaryTypeName","src":"7654:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":706,"mutability":"mutable","name":"userAddress","nameLocation":"7692:11:1","nodeType":"VariableDeclaration","scope":811,"src":"7684:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":705,"name":"address","nodeType":"ElementaryTypeName","src":"7684:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7644:65:1"},"returnParameters":{"id":712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":711,"mutability":"mutable","name":"metadata","nameLocation":"7795:8:1","nodeType":"VariableDeclaration","scope":811,"src":"7774:29:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_memory_ptr","typeString":"struct IPopRules.PriceWithMeta"},"typeName":{"id":710,"nodeType":"UserDefinedTypeName","pathNode":{"id":709,"name":"PriceWithMeta","nameLocations":["7774:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":57,"src":"7774:13:1"},"referencedDeclaration":57,"src":"7774:13:1","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$57_storage_ptr","typeString":"struct IPopRules.PriceWithMeta"}},"visibility":"internal"}],"src":"7773:31:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":850,"nodeType":"FunctionDefinition","src":"8663:321:1","nodes":[],"body":{"id":849,"nodeType":"Block","src":"8739:245:1","nodes":[],"statements":[{"assignments":[821],"declarations":[{"constant":false,"id":821,"mutability":"mutable","name":"namelength","nameLocation":"8757:10:1","nodeType":"VariableDeclaration","scope":849,"src":"8749:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":820,"name":"uint256","nodeType":"ElementaryTypeName","src":"8749:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":825,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":822,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":814,"src":"8770:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"id":823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8775:6:1","memberName":"strlen","nodeType":"MemberAccess","referencedDeclaration":6237,"src":"8770:11:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_uint256_$attached_to$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (uint256)"}},"id":824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8770:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8749:34:1"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":826,"name":"namelength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"8797:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"39","id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8810:1:1","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"8797:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":832,"nodeType":"IfStatement","src":"8793:53:1","trueBody":{"id":831,"nodeType":"Block","src":"8813:33:1","statements":[{"expression":{"hexValue":"30","id":829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8834:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":819,"id":830,"nodeType":"Return","src":"8827:8:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":833,"name":"namelength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"8860:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3135","id":834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8874:2:1","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"8860:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":841,"nodeType":"IfStatement","src":"8856:71:1","trueBody":{"id":840,"nodeType":"Block","src":"8878:49:1","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":836,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"8899:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8915:1:1","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"8899:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":819,"id":839,"nodeType":"Return","src":"8892:24:1"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":842,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"8944:13:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3135","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8961:2:1","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":844,"name":"namelength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":821,"src":"8966:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8961:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":846,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8960:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8944:33:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":819,"id":848,"nodeType":"Return","src":"8937:40:1"}]},"baseFunctions":[155],"documentation":{"id":812,"nodeType":"StructuredDocumentation","src":"8633:25:1","text":"@inheritdoc IPopRules"},"functionSelector":"fe2c6198","implemented":true,"kind":"function","modifiers":[],"name":"price","nameLocation":"8672:5:1","overrides":{"id":816,"nodeType":"OverrideSpecifier","overrides":[],"src":"8712:8:1"},"parameters":{"id":815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":814,"mutability":"mutable","name":"name","nameLocation":"8694:4:1","nodeType":"VariableDeclaration","scope":850,"src":"8678:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":813,"name":"string","nodeType":"ElementaryTypeName","src":"8678:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8677:22:1"},"returnParameters":{"id":819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":818,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":850,"src":"8730:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":817,"name":"uint256","nodeType":"ElementaryTypeName","src":"8730:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8729:9:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":897,"nodeType":"FunctionDefinition","src":"9120:477:1","nodes":[],"body":{"id":896,"nodeType":"Block","src":"9211:386:1","nodes":[],"statements":[{"assignments":[859],"declarations":[{"constant":false,"id":859,"mutability":"mutable","name":"baseName","nameLocation":"9235:8:1","nodeType":"VariableDeclaration","scope":896,"src":"9221:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":858,"name":"string","nodeType":"ElementaryTypeName","src":"9221:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":863,"initialValue":{"arguments":[{"id":861,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":853,"src":"9259:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":860,"name":"_stripDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1029,"src":"9246:12:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (string memory)"}},"id":862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9246:18:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9221:43:1"},{"assignments":[866],"declarations":[{"constant":false,"id":866,"mutability":"mutable","name":"reservation","nameLocation":"9293:11:1","nodeType":"VariableDeclaration","scope":896,"src":"9274:30:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":865,"nodeType":"UserDefinedTypeName","pathNode":{"id":864,"name":"Reservation","nameLocations":["9274:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":63,"src":"9274:11:1"},"referencedDeclaration":63,"src":"9274:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":870,"initialValue":{"baseExpression":{"id":867,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":198,"src":"9307:12:1","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$63_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":869,"indexExpression":{"id":868,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"9320:8:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9307:22:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9274:55:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":871,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"9344:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9356:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"9344:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9373:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9365:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":873,"name":"address","nodeType":"ElementaryTypeName","src":"9365:7:1","typeDescriptions":{}}},"id":876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9365:10:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9344:31:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":878,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"9379:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9391:7:1","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":62,"src":"9379:19:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":880,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9401:5:1","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9407:9:1","memberName":"timestamp","nodeType":"MemberAccess","src":"9401:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9379:37:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9344:72:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":895,"nodeType":"IfStatement","src":"9340:251:1","trueBody":{"id":894,"nodeType":"Block","src":"9418:173:1","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":885,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":866,"src":"9457:11:1","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$63_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9469:5:1","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":60,"src":"9457:17:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":887,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":855,"src":"9478:11:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9457:32:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"42617365206e616d6520726573657276656420666f72206f726967696e616c204c6974652072656769737472616e74","id":890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9516:49:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_79a01a294a67387a7edaa4823021914cdb681481f514745448d051863f0b7823","typeString":"literal_string \"Base name reserved for original Lite registrant\""},"value":"Base name reserved for original Lite registrant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79a01a294a67387a7edaa4823021914cdb681481f514745448d051863f0b7823","typeString":"literal_string \"Base name reserved for original Lite registrant\""}],"id":889,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"9507:8:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9507:59:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":884,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9432:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":892,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9432:148:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":893,"nodeType":"ExpressionStatement","src":"9432:148:1"}]}}]},"documentation":{"id":851,"nodeType":"StructuredDocumentation","src":"8990:125:1","text":"@notice Enforces base name reservation rules\n @param name Domain label\n @param userAddress Registering user"},"implemented":true,"kind":"function","modifiers":[],"name":"_enforceReservationRules","nameLocation":"9129:24:1","parameters":{"id":856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":853,"mutability":"mutable","name":"name","nameLocation":"9170:4:1","nodeType":"VariableDeclaration","scope":897,"src":"9154:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":852,"name":"string","nodeType":"ElementaryTypeName","src":"9154:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":855,"mutability":"mutable","name":"userAddress","nameLocation":"9184:11:1","nodeType":"VariableDeclaration","scope":897,"src":"9176:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":854,"name":"address","nodeType":"ElementaryTypeName","src":"9176:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9153:43:1"},"returnParameters":{"id":857,"nodeType":"ParameterList","parameters":[],"src":"9211:0:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":952,"nodeType":"FunctionDefinition","src":"9746:457:1","nodes":[],"body":{"id":951,"nodeType":"Block","src":"9870:333:1","nodes":[],"statements":[{"assignments":[906],"declarations":[{"constant":false,"id":906,"mutability":"mutable","name":"bytesLabel","nameLocation":"9895:10:1","nodeType":"VariableDeclaration","scope":951,"src":"9880:25:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":905,"name":"bytes","nodeType":"ElementaryTypeName","src":"9880:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":911,"initialValue":{"arguments":[{"id":909,"name":"label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":900,"src":"9914:5:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9908:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":907,"name":"bytes","nodeType":"ElementaryTypeName","src":"9908:5:1","typeDescriptions":{}}},"id":910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9908:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"9880:40:1"},{"assignments":[913],"declarations":[{"constant":false,"id":913,"mutability":"mutable","name":"stringlength","nameLocation":"9938:12:1","nodeType":"VariableDeclaration","scope":951,"src":"9930:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":912,"name":"uint256","nodeType":"ElementaryTypeName","src":"9930:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":916,"initialValue":{"expression":{"id":914,"name":"bytesLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"9953:10:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9964:6:1","memberName":"length","nodeType":"MemberAccess","src":"9953:17:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9930:40:1"},{"body":{"id":949,"nodeType":"Block","src":"10024:173:1","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":927,"name":"bytesLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"10042:10:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":931,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":918,"src":"10053:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10057:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10053:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10042:17:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783330","id":932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10063:4:1","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"0x30"},"src":"10042:25:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":934,"name":"bytesLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"10071:10:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":938,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":935,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":918,"src":"10082:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10086:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10082:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10071:17:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30783339","id":939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10092:4:1","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"0x39"},"src":"10071:25:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10042:54:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":947,"nodeType":"Block","src":"10149:38:1","statements":[{"id":946,"nodeType":"Break","src":"10167:5:1"}]},"id":948,"nodeType":"IfStatement","src":"10038:149:1","trueBody":{"id":945,"nodeType":"Block","src":"10098:45:1","statements":[{"expression":{"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10116:12:1","subExpression":{"id":942,"name":"digitCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":903,"src":"10116:10:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":944,"nodeType":"ExpressionStatement","src":"10116:12:1"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":921,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":918,"src":"10012:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10012:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":950,"initializationExpression":{"assignments":[918],"declarations":[{"constant":false,"id":918,"mutability":"mutable","name":"i","nameLocation":"9994:1:1","nodeType":"VariableDeclaration","scope":950,"src":"9986:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":917,"name":"uint256","nodeType":"ElementaryTypeName","src":"9986:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":920,"initialValue":{"id":919,"name":"stringlength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":913,"src":"9998:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9986:24:1"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"10019:3:1","subExpression":{"id":924,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":918,"src":"10019:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":926,"nodeType":"ExpressionStatement","src":"10019:3:1"},"nodeType":"ForStatement","src":"9981:216:1"}]},"documentation":{"id":898,"nodeType":"StructuredDocumentation","src":"9603:138:1","text":"@notice Counts trailing digits in a string\n @param label String to analyze\n @return digitCount Number of trailing digits"},"implemented":true,"kind":"function","modifiers":[],"name":"_countTrailingDigits","nameLocation":"9755:20:1","parameters":{"id":901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":900,"mutability":"mutable","name":"label","nameLocation":"9792:5:1","nodeType":"VariableDeclaration","scope":952,"src":"9776:21:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":899,"name":"string","nodeType":"ElementaryTypeName","src":"9776:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9775:23:1"},"returnParameters":{"id":904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":903,"mutability":"mutable","name":"digitCount","nameLocation":"9854:10:1","nodeType":"VariableDeclaration","scope":952,"src":"9846:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":902,"name":"uint256","nodeType":"ElementaryTypeName","src":"9846:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9845:20:1"},"scope":1087,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1029,"nodeType":"FunctionDefinition","src":"10347:567:1","nodes":[],"body":{"id":1028,"nodeType":"Block","src":"10438:476:1","nodes":[],"statements":[{"assignments":[961],"declarations":[{"constant":false,"id":961,"mutability":"mutable","name":"bytesName","nameLocation":"10463:9:1","nodeType":"VariableDeclaration","scope":1028,"src":"10448:24:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":960,"name":"bytes","nodeType":"ElementaryTypeName","src":"10448:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":966,"initialValue":{"arguments":[{"id":964,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"10481:4:1","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10475:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":962,"name":"bytes","nodeType":"ElementaryTypeName","src":"10475:5:1","typeDescriptions":{}}},"id":965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10475:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"10448:38:1"},{"assignments":[968],"declarations":[{"constant":false,"id":968,"mutability":"mutable","name":"endPosition","nameLocation":"10504:11:1","nodeType":"VariableDeclaration","scope":1028,"src":"10496:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":967,"name":"uint256","nodeType":"ElementaryTypeName","src":"10496:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":971,"initialValue":{"expression":{"id":969,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"10518:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10528:6:1","memberName":"length","nodeType":"MemberAccess","src":"10518:16:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10496:38:1"},{"body":{"id":994,"nodeType":"Block","src":"10683:38:1","statements":[{"expression":{"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"10697:13:1","subExpression":{"id":991,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10697:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":993,"nodeType":"ExpressionStatement","src":"10697:13:1"}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":972,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10565:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10579:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10565:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":975,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"10584:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":979,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":976,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10594:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10608:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10594:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10584:26:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783330","id":980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10614:4:1","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"0x30"},"src":"10584:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10565:53:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":983,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"10638:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":987,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":984,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10648:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10662:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10648:15:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10638:26:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30783339","id":988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10668:4:1","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"0x39"},"src":"10638:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10565:107:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":995,"nodeType":"WhileStatement","src":"10545:176:1"},{"assignments":[997],"declarations":[{"constant":false,"id":997,"mutability":"mutable","name":"output","nameLocation":"10744:6:1","nodeType":"VariableDeclaration","scope":1028,"src":"10731:19:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":996,"name":"bytes","nodeType":"ElementaryTypeName","src":"10731:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1002,"initialValue":{"arguments":[{"id":1000,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10763:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10753:9:1","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":998,"name":"bytes","nodeType":"ElementaryTypeName","src":"10757:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10753:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10731:44:1"},{"body":{"id":1021,"nodeType":"Block","src":"10827:49:1","statements":[{"expression":{"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1013,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"10841:6:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1015,"indexExpression":{"id":1014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1004,"src":"10848:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10841:9:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1016,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"10853:9:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1018,"indexExpression":{"id":1017,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1004,"src":"10863:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10853:12:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"10841:24:1","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1020,"nodeType":"ExpressionStatement","src":"10841:24:1"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1007,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1004,"src":"10805:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1008,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":968,"src":"10809:11:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10805:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1022,"initializationExpression":{"assignments":[1004],"declarations":[{"constant":false,"id":1004,"mutability":"mutable","name":"i","nameLocation":"10798:1:1","nodeType":"VariableDeclaration","scope":1022,"src":"10790:9:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1003,"name":"uint256","nodeType":"ElementaryTypeName","src":"10790:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1006,"initialValue":{"hexValue":"30","id":1005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10802:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10790:13:1"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10822:3:1","subExpression":{"id":1010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1004,"src":"10822:1:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1012,"nodeType":"ExpressionStatement","src":"10822:3:1"},"nodeType":"ForStatement","src":"10785:91:1"},{"expression":{"arguments":[{"id":1025,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"10900:6:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10893:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1023,"name":"string","nodeType":"ElementaryTypeName","src":"10893:6:1","typeDescriptions":{}}},"id":1026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10893:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":959,"id":1027,"nodeType":"Return","src":"10886:21:1"}]},"documentation":{"id":953,"nodeType":"StructuredDocumentation","src":"10209:133:1","text":"@notice Strips trailing digits from a name\n @param name Domain label\n @return baseName Name without trailing digits"},"implemented":true,"kind":"function","modifiers":[],"name":"_stripDigits","nameLocation":"10356:12:1","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":955,"mutability":"mutable","name":"name","nameLocation":"10385:4:1","nodeType":"VariableDeclaration","scope":1029,"src":"10369:20:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":954,"name":"string","nodeType":"ElementaryTypeName","src":"10369:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10368:22:1"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"baseName","nameLocation":"10428:8:1","nodeType":"VariableDeclaration","scope":1029,"src":"10414:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":957,"name":"string","nodeType":"ElementaryTypeName","src":"10414:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10413:24:1"},"scope":1087,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":1051,"nodeType":"FunctionDefinition","src":"10958:251:1","nodes":[],"body":{"id":1050,"nodeType":"Block","src":"11103:106:1","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1038,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"11120:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1040,"name":"IPopRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156,"src":"11140:9:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPopRules_$156_$","typeString":"type(contract IPopRules)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPopRules_$156_$","typeString":"type(contract IPopRules)"}],"id":1039,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11135:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11135:15:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPopRules_$156","typeString":"type(contract IPopRules)"}},"id":1042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11151:11:1","memberName":"interfaceId","nodeType":"MemberAccess","src":"11135:27:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"11120:42:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1046,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1032,"src":"11190:11:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":1044,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"11166:5:1","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PopRules_$1087_$","typeString":"type(contract super PopRules)"}},"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11172:17:1","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":43321,"src":"11166:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11166:36:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11120:82:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1037,"id":1049,"nodeType":"Return","src":"11113:89:1"}]},"baseFunctions":[43321],"documentation":{"id":1030,"nodeType":"StructuredDocumentation","src":"10920:33:1","text":"@inheritdoc ERC165Upgradeable"},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"10967:17:1","overrides":{"id":1034,"nodeType":"OverrideSpecifier","overrides":[],"src":"11057:8:1"},"parameters":{"id":1033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1032,"mutability":"mutable","name":"interfaceId","nameLocation":"10992:11:1","nodeType":"VariableDeclaration","scope":1051,"src":"10985:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1031,"name":"bytes4","nodeType":"ElementaryTypeName","src":"10985:6:1","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"10984:20:1"},"returnParameters":{"id":1037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1036,"mutability":"mutable","name":"supported","nameLocation":"11088:9:1","nodeType":"VariableDeclaration","scope":1051,"src":"11083:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1035,"name":"bool","nodeType":"ElementaryTypeName","src":"11083:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11082:16:1"},"scope":1087,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":1061,"nodeType":"FunctionDefinition","src":"11251:84:1","nodes":[],"body":{"id":1060,"nodeType":"Block","src":"11333:2:1","nodes":[],"statements":[]},"baseFunctions":[44734],"documentation":{"id":1052,"nodeType":"StructuredDocumentation","src":"11215:31:1","text":"@inheritdoc UUPSUpgradeable"},"implemented":true,"kind":"function","modifiers":[{"id":1058,"kind":"modifierInvocation","modifierName":{"id":1057,"name":"onlyOwner","nameLocations":["11323:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":42043,"src":"11323:9:1"},"nodeType":"ModifierInvocation","src":"11323:9:1"}],"name":"_authorizeUpgrade","nameLocation":"11260:17:1","overrides":{"id":1056,"nodeType":"OverrideSpecifier","overrides":[],"src":"11314:8:1"},"parameters":{"id":1055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1054,"mutability":"mutable","name":"newImplementation","nameLocation":"11286:17:1","nodeType":"VariableDeclaration","scope":1061,"src":"11278:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1053,"name":"address","nodeType":"ElementaryTypeName","src":"11278:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11277:27:1"},"returnParameters":{"id":1059,"nodeType":"ParameterList","parameters":[],"src":"11333:0:1"},"scope":1087,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1072,"nodeType":"FunctionDefinition","src":"11441:119:1","nodes":[],"body":{"id":1071,"nodeType":"Block","src":"11520:40:1","nodes":[],"statements":[{"expression":{"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1067,"name":"versionString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1065,"src":"11530:13:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"312e302e30","id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11546:7:1","typeDescriptions":{"typeIdentifier":"t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c","typeString":"literal_string \"1.0.0\""},"value":"1.0.0"},"src":"11530:23:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":1070,"nodeType":"ExpressionStatement","src":"11530:23:1"}]},"documentation":{"id":1062,"nodeType":"StructuredDocumentation","src":"11341:95:1","text":"@notice Returns implementation version\n @return versionString Current version string"},"functionSelector":"54fd4d50","implemented":true,"kind":"function","modifiers":[],"name":"version","nameLocation":"11450:7:1","parameters":{"id":1063,"nodeType":"ParameterList","parameters":[],"src":"11457:2:1"},"returnParameters":{"id":1066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1065,"mutability":"mutable","name":"versionString","nameLocation":"11505:13:1","nodeType":"VariableDeclaration","scope":1072,"src":"11491:27:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1064,"name":"string","nodeType":"ElementaryTypeName","src":"11491:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11490:29:1"},"scope":1087,"stateMutability":"pure","virtual":true,"visibility":"external"},{"id":1086,"nodeType":"FunctionDefinition","src":"11686:115:1","nodes":[],"body":{"id":1085,"nodeType":"Block","src":"11725:76:1","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1077,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11743:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11747:6:1","memberName":"sender","nodeType":"MemberAccess","src":"11743:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1079,"name":"dotRegistryController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":209,"src":"11757:21:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11743:35:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1081,"name":"NotRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45,"src":"11780:11:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11780:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":1076,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11735:7:1","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11735:59:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1084,"nodeType":"ExpressionStatement","src":"11735:59:1"}]},"documentation":{"id":1073,"nodeType":"StructuredDocumentation","src":"11566:115:1","text":"@notice Ensures the caller is the authorized registry controller\n @dev Done this way to reduce code size"},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRegistry","nameLocation":"11695:13:1","parameters":{"id":1074,"nodeType":"ParameterList","parameters":[],"src":"11708:2:1"},"returnParameters":{"id":1075,"nodeType":"ParameterList","parameters":[],"src":"11725:0:1"},"scope":1087,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":172,"name":"Initializable","nameLocations":["760:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":44614,"src":"760:13:1"},"id":173,"nodeType":"InheritanceSpecifier","src":"760:13:1"},{"baseName":{"id":174,"name":"UUPSUpgradeable","nameLocations":["779:15:1"],"nodeType":"IdentifierPath","referencedDeclaration":44780,"src":"779:15:1"},"id":175,"nodeType":"InheritanceSpecifier","src":"779:15:1"},{"baseName":{"id":176,"name":"OwnableUpgradeable","nameLocations":["800:18:1"],"nodeType":"IdentifierPath","referencedDeclaration":42148,"src":"800:18:1"},"id":177,"nodeType":"InheritanceSpecifier","src":"800:18:1"},{"baseName":{"id":178,"name":"ERC165Upgradeable","nameLocations":["824:17:1"],"nodeType":"IdentifierPath","referencedDeclaration":43322,"src":"824:17:1"},"id":179,"nodeType":"InheritanceSpecifier","src":"824:17:1"},{"baseName":{"id":180,"name":"IPopRules","nameLocations":["847:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":156,"src":"847:9:1"},"id":181,"nodeType":"InheritanceSpecifier","src":"847:9:1"}],"canonicalName":"PopRules","contractDependencies":[],"contractKind":"contract","documentation":{"id":171,"nodeType":"StructuredDocumentation","src":"581:154:1","text":"@title PopRules\n @notice Implements DotNS pricing with PoP-tier validation and base-name reservations\n @custom:security-contact admin@parity.io"},"fullyImplemented":true,"linearizedBaseContracts":[1087,156,43322,48002,42148,43282,44780,44614,43501],"name":"PopRules","nameLocation":"744:8:1","scope":1088,"usedErrors":[37,42,45,41984,41989,43696,43709,44363,44366,44637,44642,45032,46166],"usedEvents":[17,24,32,41995,43478,44371]}],"license":"MIT"},"id":1} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"MAX_RESERVATION_TIME","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"classifyName","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"requirement","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"message","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"getBaseNameReservation","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"reservationOwner","type":"address","internalType":"address"},{"name":"expiryTimestamp","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_startingPrice","type":"uint256","internalType":"uint256"},{"name":"registry","type":"address","internalType":"contract IDotnsProtocolRegistry"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isBaseName","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"isBase","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"isBaseNameReserved","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"isReserved","type":"bool","internalType":"bool"},{"name":"reservationOwner","type":"address","internalType":"address"},{"name":"expiryTimestamp","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"name","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"priceWithCheck","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct IPopRules.PriceWithMeta","components":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"userStatus","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"message","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"priceWithoutCheck","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"metadata","type":"tuple","internalType":"struct IPopRules.PriceWithMeta","components":[{"name":"price","type":"uint256","internalType":"uint256"},{"name":"status","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"userStatus","type":"uint8","internalType":"enum IPopRules.PopStatus"},{"name":"message","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"protocolRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDotnsProtocolRegistry"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reachFee","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"fee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"releaseBaseName","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reservations","inputs":[{"name":"baseName","type":"string","internalType":"string"}],"outputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"expires","type":"uint64","internalType":"uint64"},{"name":"controller","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"reserveBaseName","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reserveBaseNameForPop","inputs":[{"name":"baseName","type":"string","internalType":"string"},{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startingPrice","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"supported","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateStartingPrice","inputs":[{"name":"newStartingPrice","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"versionString","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"event","name":"BaseNameReleased","inputs":[{"name":"baseName","type":"string","indexed":true,"internalType":"string"}],"anonymous":false},{"type":"event","name":"BaseNameReserved","inputs":[{"name":"baseName","type":"string","indexed":true,"internalType":"string"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"expires","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StartingPriceUpdated","inputs":[{"name":"oldPrice","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"newPrice","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegistry","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PopError","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061201e5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051611f5790816100c78239608051818181610cfe0152610da10152f35b6001600160401b0319166001600160401b039081175f51602061201e5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611364575080632b0282ae146111be5780633017fa331461115657806335696fa714610f36578063453fa0f414610f1d5780634f1ef28614610d5257806352d1902d14610cec57806354fd4d5014610ca557806368e344e914610c885780636bbfce2b14610a39578063715018a6146109d25780637656419f146109aa5780638ac7f0f51461090d5780638da5cb5b146108d95780639180999414610828578063ad3cb1cc146107e1578063b4956ade14610793578063c5c95048146106ff578063d6fbf202146106e3578063da35a26f1461051d578063dbc13dda146103c5578063dcd6257314610248578063f2fde38b1461021d578063f6d3dec2146101805763fe2c61981461012f575f80fd5b3461017c57602036600319011261017c576004356001600160401b03811161017c5761017461016f61016760209336906004016113b7565b80929161177b565b611c08565b604051908152f35b5f80fd5b3461017c57602036600319011261017c5760043561019c611c44565b80156101d7577f0747cfd0d41ccd9050f767151ed72d19992387e6295320adbcb8bd37b84eec3f60405f548151908152836020820152a15f55005b6040516305bf8fb360e31b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e2030000000006044820152606490fd5b3461017c57602036600319011261017c576102466102396113e4565b610241611c44565b6115ec565b005b3461017c57610256366113fa565b6102619291926115ac565b9161026c848261177b565b6102768482611856565b92909161028282611aec565b60048110156103b157610337966102d5926102c46102d09380155f146103ab576102ab84611c08565b8a526102bb60208b0198896115e0565b60408a016115e0565b606088019687526119f6565b611557565b61031b6040516102e48161146d565b82546001600160a01b0380821680845260a09290921c6001600160401b0316602084015260019094015490931660408201526117e2565b9182610397575b505061033b575b50506040519182918261150e565b0390f35b60405160039261034c60608361149c565b602f82527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060208301526e131a5d19481c9959da5cdd1c985b9d608a1b604083015252528280610329565b6001600160a01b0316141590508580610322565b5f6102ab565b634e487b7160e01b5f52602160045260245ffd5b3461017c57602036600319011261017c576004356001600160401b03811161017c576103f59036906004016113b7565b906103fe61165d565b610408828261177b565b6040518282823760208184810160018152030190206104646040519161042d8361146d565b80546001600160a01b03808216855260a09190911c6001600160401b031660208501526001909101541660408301819052916117e2565b6104bd575b505f60016040518484823760208186810184815203019020828155015581604051928392833781015f81520390207f6ec7cc3dd7f658564fa4443ff7200db64f1eef479f7e2aefae0c716e35502cd45f80a2005b33036104c95782610469565b6040516305bf8fb360e31b815260206004820152602560248201527f4f6e6c7920726573657276696e6720636f6e74726f6c6c65722063616e2072656044820152646c6561736560d81b6064820152608490fd5b3461017c57604036600319011261017c576004356024356001600160a01b0381169081900361017c575f516020611f025f395f51905f52549160ff8360401c1615926001600160401b038116801590816106db575b60011490816106d1575b1590816106c8575b506106b95767ffffffffffffffff1981166001175f516020611f025f395f51905f52558361068d575b506105b6611d0d565b6105be611d0d565b6105c6611d0d565b6105cf336115ec565b6105d7611d0d565b6105df611c44565b80156101d7577f0747cfd0d41ccd9050f767151ed72d19992387e6295320adbcb8bd37b84eec3f60405f548151908152836020820152a15f556bffffffffffffffffffffffff60a01b600254161760025561063657005b68ff0000000000000000195f516020611f025f395f51905f5254165f516020611f025f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001175f516020611f025f395f51905f5255836105ad565b63f92ee8a960e01b5f5260045ffd5b90501585610584565b303b15915061057c565b859150610572565b3461017c575f36600319011261017c5760205f54604051908152f35b3461017c57602036600319011261017c576004356001600160401b03811161017c573660238201121561017c5760208061074560609336906024816004013591016114d8565b604051928184925191829101835e810160018152030190208054906001808060a01b03910154166001600160401b036040519260018060a01b038116845260a01c1660208301526040820152f35b3461017c57602036600319011261017c576004356001600160401b03811161017c576107d86107c860209236906004016113b7565b906107d3828261177b565b611c77565b15604051908152f35b3461017c575f36600319011261017c5761033760405161080260408261149c565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611449565b3461017c57602036600319011261017c576004356001600160401b03811161017c57602061085c60609236906004016113b7565b9190610868838261177b565b82604051938492833781016001815203019020604051906108888261146d565b80546001600160a01b0380821680855260a09290921c6001600160401b031660208501819052600190930154166040840152916108c4906117e2565b91604051921515835260208301526040820152f35b3461017c575f36600319011261017c575f516020611ec25f395f51905f52546040516001600160a01b039091168152602090f35b3461017c57602036600319011261017c576004356001600160401b03811161017c57602061094160409236906004016113b7565b919061094d838261177b565b82845193849283378101600181520301902081519061096b8261146d565b805491836001600160401b0360018060a01b0385169485845260a01c16928360208401526001808060a01b039101541691015282519182526020820152f35b3461017c575f36600319011261017c576002546040516001600160a01b039091168152602090f35b3461017c575f36600319011261017c576109ea611c44565b5f516020611ec25f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017c57610a47366113fa565b9190610a516115ac565b92610a5c828461177b565b610a696102d083856119f6565b610a786040516102e48161146d565b610c15575b50610a8b82610a9394611856565b939091611aec565b92600484101592836103b15784610c0e57610aad90611c08565b8552610abc82602087016115e0565b610ac984604087016115e0565b80606086015260048210156103b15760038214610be5575060028103610b5a57506103b157600203610b0657610337905b6040519182918261150e565b6040516305bf8fb360e31b815260206004820152602560248201527f52657175697265732046756c6c20506572736f6e686f6f64207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b6001915014610b6e575b5061033790610afa565b60018114908115610bda575b5015610b865781610b64565b6040516305bf8fb360e31b815260206004820152602560248201527f526571756972657320506572736f6e686f6f64204c697465207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b600291501482610b7a565b6040516305bf8fb360e31b815260206004820152908190610c0a906024830190611449565b0390fd5b505f610aad565b6001600160a01b03821603610c2a5784610a7d565b6040516305bf8fb360e31b815260206004820152602f60248201527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060448201526e131a5d19481c9959da5cdd1c985b9d608a1b6064820152608490fd5b3461017c575f36600319011261017c576020604051626ebe008152f35b3461017c575f36600319011261017c57610337604051610cc660408261149c565b60058152640312e302e360dc1b6020820152604051918291602083526020830190611449565b3461017c575f36600319011261017c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610d435760206040515f516020611ee25f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261017c57610d666113e4565b6024356001600160401b03811161017c573660238201121561017c57610d969036906024816004013591016114d8565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610efb575b50610d4357610dd9611c44565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610ec7575b50610e1b5783634c9c8ce360e01b5f5260045260245ffd5b805f516020611ee25f395f51905f52859203610eb55750823b15610ea3575f516020611ee25f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610e8b5761024691611e35565b505034610e9457005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610ef3575b81610ee36020938361149c565b8101031261017c57519085610e03565b3d9150610ed6565b5f516020611ee25f395f51905f52546001600160a01b03161415905083610dcc565b3461017c576020610174610f30366113fa565b91611576565b3461017c57610f44366113fa565b9190610f4e61165d565b610f58818361177b565b610f628183611856565b5060048110156103b1576001036110f957610f7c916119f6565b604051610fdb825191602081818601948086835e8101600181520301902060405190610fa78261146d565b80546001600160a01b03808216845260a09190911c6001600160401b031660208401526001909101541660408201526117e2565b15610fe257005b626ebe0042018042116110e5577f4d72f477fa240edc1a91eaafd5ec14ee8c94142aa248fafb508ac804c9c5362d916001600160401b0360209216936040519561102b8761146d565b60018060a01b0316958681526001848201878152604083019033825260405187818751808a835e81018681520301902093518454915167ffffffffffffffff60a01b60a091821b166001600160e01b03199093169085901b85900391821667ffffffffffffffff60a01b1916179190911784559051929091018054929091166001600160a01b03166001600160a01b0319909216919091179055604051905190918291908190835e81015f815203902092604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b6040516305bf8fb360e31b815260206004820152602e60248201527f42617365207265736572766174696f6e2072657175697265732061206c69746560448201526d2d656c696769626c65206e616d6560901b6064820152608490fd5b3461017c57602036600319011261017c576004356001600160401b03811161017c5761033761119f61118f6111ad9336906004016113b7565b9061119a828261177b565b611856565b60405193849392849061143c565b604060208401526040830190611449565b3461017c576111cc366113fa565b91906111d661165d565b6111e0818361177b565b6040518183823760208183810160018152030190206112046040516102e48161146d565b611309575b50626ebe0042018042116110e5577f4d72f477fa240edc1a91eaafd5ec14ee8c94142aa248fafb508ac804c9c5362d916001600160401b036020921693604051956112538761146d565b60018060a01b03169586815260018482018781526040830190338252604051868682378087018481528190038801902093518454915167ffffffffffffffff60a01b60a091821b166001600160e01b03199093169085901b85900391821667ffffffffffffffff60a01b1916179190911784559051929091018054929091166001600160a01b03166001600160a01b03199092169190911790556040519182918190833781015f815203902092604051908152a3005b6001600160a01b0384160361131e5783611209565b6040516305bf8fb360e31b815260206004820152601e60248201527f42617365206e616d652068656c6420627920616e6f74686572207573657200006044820152606490fd5b3461017c57602036600319011261017c576004359063ffffffff60e01b821680920361017c5760209163a0c6dda960e01b81149081156113a6575b5015158152f35b6301ffc9a760e01b1490508361139f565b9181601f8401121561017c578235916001600160401b03831161017c576020838186019501011161017c57565b600435906001600160a01b038216820361017c57565b604060031982011261017c57600435906001600160401b03821161017c57611424916004016113b7565b90916024356001600160a01b038116810361017c5790565b9060048210156103b15752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b606081019081106001600160401b0382111761148857604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761148857604052565b6001600160401b03811161148857601f01601f191660200190565b9291926114e4826114bd565b916114f2604051938461149c565b82948184528183011161017c578281602093845f960137010152565b60a060606115549360208452805160208501526115336020820151604086019061143c565b61154460408201518386019061143c565b0151916080808201520190611449565b90565b60208091604051928184925191829101835e8101600181520301902090565b9161159461158d8361159a949561119a828261177b565b5091611aec565b90611bba565b6115a75761155490611c08565b505f90565b60405190608082018281106001600160401b0382111761148857604052606080835f81525f60208201525f60408201520152565b60048210156103b15752565b6001600160a01b0316801561164a575f516020611ec25f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60025460405163023aa9ab60e61b8152683932b3b4b9ba3930b960b91b600482015290602090829060249082906001600160a01b03165afa90811561172d575f91611738575b50604051636d46114f60e11b815233600482015290602090829060249082906001600160a01b03165afa90811561172d575f916116f2575b50156116e357565b633217675b60e21b5f5260045ffd5b90506020813d602011611725575b8161170d6020938361149c565b8101031261017c5751801515810361017c575f6116db565b3d9150611700565b6040513d5f823e3d90fd5b90506020813d602011611773575b816117536020938361149c565b8101031261017c57516001600160a01b038116810361017c5760206116a3565b3d9150611746565b908061178692611d38565b1561178d57565b6040516305bf8fb360e31b815260206004820152602660248201527f4e616d65206d757374206265206c6f7765726361736520415343494920444e53604482015265081b1858995b60d21b6064820152608490fd5b80516001600160a01b0316151590816117f9575090565b6001600160401b0391506020015116421090565b6040519061181c60608361149c565b602582526430ba34b7b760d91b6040837f52657175697265732046756c6c20706572736f6e686f6f64207665726966696360208201520152565b8161186091611c77565b60028111611978578082039182116110e5576005821115611938578160066002931015908161192c575b506118cf571461189f5760029061155461180d565b5f906040516118af60408261149c565b601081526f105d985a5b18589b19481d1bc8185b1b60821b602082015290565b146118df5760029061155461180d565b6001906040516118f060608261149c565b602681527f5265717569726573204c6967687420706572736f6e686f6f642076657269666960208201526531b0ba34b7b760d11b604082015290565b6008915011155f61188a565b505060039060405161194b60408261149c565b601781527f526573657276656420666f7220476f7665726e616e6365000000000000000000602082015290565b6040516305bf8fb360e31b8152602060048201526024808201527f4e616d652063616e2068617665206d6178696d756d20322064696769742073756044820152630ccccd2f60e31b6064820152608490fd5b908210156119d6570190565b634e487b7160e01b5f52603260045260245ffd5b80156110e5575f190190565b90805b80151580611abc575b80611a8c575b15611a1b57611a16906119ea565b6119f9565b9091611a26826114bd565b92611a34604051948561149c565b828452601f19611a43846114bd565b013660208601375f5b838110611a5a575050505090565b6001600160f81b0319611a6e8284866119ca565b35165f1a9085518110156119d6576001916020828801015301611a4c565b505f1981018181116110e557603960f81b906001600160f81b031990611ab39085876119ca565b35161115611a08565b505f1981018181116110e557600360fc1b906001600160f81b031990611ae39085876119ca565b35161015611a02565b6040805163886af13360e01b81526001600160a01b03909216600483015264646f746e7360d81b602483015281604481630a0100005afa801561172d575f90611b54575b60ff9150511660028114611b4e57600114611b49575f90565b600190565b50600290565b506040813d604011611bb2575b81611b6e6040938361149c565b8101031261017c57604051604081018181106001600160401b0382111761148857604052815160ff8116810361017c5760ff92602091835201516020820152611b30565b3d9150611b61565b60048110156103b15760028114611bf857600114611bd85750600190565b60048110156103b15760018114908115611bf0575090565b600291501490565b5060048110156103b15760021490565b600981106115a757600f811015611c3b575f5490600f0390600f82116110e5578181029181830414901517156110e55790565b505f5460011c90565b5f516020611ec25f395f51905f52546001600160a01b03163303611c6457565b63118cdaa760e01b5f523360045260245ffd5b5f9291908190815b611c8857505050565b909291935f1985018581116110e557600360fc1b6001600160f81b0319611cb08388876119ca565b351610159081611ce7575b5015611cdf575f1981146110e5576001611cd69101946119ea565b91929082611c7f565b935090915050565b603960f81b91506001600160f81b031990611d039087866119ca565b351611155f611cbb565b60ff5f516020611f025f395f51905f525460401c1615611d2957565b631afcd79f60e31b5f5260045ffd5b908215611dff5780156119d65781356001600160f81b031916602d60f81b148015611e06575b611dff575f5b838110611d745750505050600190565b6001600160f81b0319611d888284866119ca565b3516606160f81b8110159081611df0575b600360fc1b81101580611de2575b8215611dda575b508115611dcc575b5015611dc457600101611d64565b505050505f90565b602d60f81b1490505f611db6565b91505f611dae565b50603960f81b811115611da7565b603d60f91b8111159150611d99565b5050505f90565b505f1983018381116110e557602d60f81b906001600160f81b031990611e2d9084866119ca565b351614611d5e565b905f8091602081519101845af48080611eae575b15611e695750506040513d81523d5f602083013e60203d82010160405290565b15611e8e57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15611e9f576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580611e495750813b1515611e4956fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203bb05b17ebd03e61457d78bd4b4821d2da326b08f0c17dd203cd8c9dd922de0e64736f6c63430008220033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1077:16231:7:-:0;;;;;;;1084:4:81;1076:13;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;;;;;7894:76:80;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;7983:34:80;7979:146;;-1:-1:-1;1077:16231:7;;;;;;;;1076:13:81;1077:16231:7;;;;;;;;;;;7979:146:80;-1:-1:-1;;;;;;1077:16231:7;-1:-1:-1;;;;;1077:16231:7;;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;;8085:29:80;;1077:16231:7;;8085:29:80;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:80;;-1:-1:-1;7936:23:80;1077:16231:7;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714611364575080632b0282ae146111be5780633017fa331461115657806335696fa714610f36578063453fa0f414610f1d5780634f1ef28614610d5257806352d1902d14610cec57806354fd4d5014610ca557806368e344e914610c885780636bbfce2b14610a39578063715018a6146109d25780637656419f146109aa5780638ac7f0f51461090d5780638da5cb5b146108d95780639180999414610828578063ad3cb1cc146107e1578063b4956ade14610793578063c5c95048146106ff578063d6fbf202146106e3578063da35a26f1461051d578063dbc13dda146103c5578063dcd6257314610248578063f2fde38b1461021d578063f6d3dec2146101805763fe2c61981461012f575f80fd5b3461017c57602036600319011261017c576004356001600160401b03811161017c5761017461016f61016760209336906004016113b7565b80929161177b565b611c08565b604051908152f35b5f80fd5b3461017c57602036600319011261017c5760043561019c611c44565b80156101d7577f0747cfd0d41ccd9050f767151ed72d19992387e6295320adbcb8bd37b84eec3f60405f548151908152836020820152a15f55005b6040516305bf8fb360e31b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e2030000000006044820152606490fd5b3461017c57602036600319011261017c576102466102396113e4565b610241611c44565b6115ec565b005b3461017c57610256366113fa565b6102619291926115ac565b9161026c848261177b565b6102768482611856565b92909161028282611aec565b60048110156103b157610337966102d5926102c46102d09380155f146103ab576102ab84611c08565b8a526102bb60208b0198896115e0565b60408a016115e0565b606088019687526119f6565b611557565b61031b6040516102e48161146d565b82546001600160a01b0380821680845260a09290921c6001600160401b0316602084015260019094015490931660408201526117e2565b9182610397575b505061033b575b50506040519182918261150e565b0390f35b60405160039261034c60608361149c565b602f82527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060208301526e131a5d19481c9959da5cdd1c985b9d608a1b604083015252528280610329565b6001600160a01b0316141590508580610322565b5f6102ab565b634e487b7160e01b5f52602160045260245ffd5b3461017c57602036600319011261017c576004356001600160401b03811161017c576103f59036906004016113b7565b906103fe61165d565b610408828261177b565b6040518282823760208184810160018152030190206104646040519161042d8361146d565b80546001600160a01b03808216855260a09190911c6001600160401b031660208501526001909101541660408301819052916117e2565b6104bd575b505f60016040518484823760208186810184815203019020828155015581604051928392833781015f81520390207f6ec7cc3dd7f658564fa4443ff7200db64f1eef479f7e2aefae0c716e35502cd45f80a2005b33036104c95782610469565b6040516305bf8fb360e31b815260206004820152602560248201527f4f6e6c7920726573657276696e6720636f6e74726f6c6c65722063616e2072656044820152646c6561736560d81b6064820152608490fd5b3461017c57604036600319011261017c576004356024356001600160a01b0381169081900361017c575f516020611f025f395f51905f52549160ff8360401c1615926001600160401b038116801590816106db575b60011490816106d1575b1590816106c8575b506106b95767ffffffffffffffff1981166001175f516020611f025f395f51905f52558361068d575b506105b6611d0d565b6105be611d0d565b6105c6611d0d565b6105cf336115ec565b6105d7611d0d565b6105df611c44565b80156101d7577f0747cfd0d41ccd9050f767151ed72d19992387e6295320adbcb8bd37b84eec3f60405f548151908152836020820152a15f556bffffffffffffffffffffffff60a01b600254161760025561063657005b68ff0000000000000000195f516020611f025f395f51905f5254165f516020611f025f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b68ffffffffffffffffff191668010000000000000001175f516020611f025f395f51905f5255836105ad565b63f92ee8a960e01b5f5260045ffd5b90501585610584565b303b15915061057c565b859150610572565b3461017c575f36600319011261017c5760205f54604051908152f35b3461017c57602036600319011261017c576004356001600160401b03811161017c573660238201121561017c5760208061074560609336906024816004013591016114d8565b604051928184925191829101835e810160018152030190208054906001808060a01b03910154166001600160401b036040519260018060a01b038116845260a01c1660208301526040820152f35b3461017c57602036600319011261017c576004356001600160401b03811161017c576107d86107c860209236906004016113b7565b906107d3828261177b565b611c77565b15604051908152f35b3461017c575f36600319011261017c5761033760405161080260408261149c565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611449565b3461017c57602036600319011261017c576004356001600160401b03811161017c57602061085c60609236906004016113b7565b9190610868838261177b565b82604051938492833781016001815203019020604051906108888261146d565b80546001600160a01b0380821680855260a09290921c6001600160401b031660208501819052600190930154166040840152916108c4906117e2565b91604051921515835260208301526040820152f35b3461017c575f36600319011261017c575f516020611ec25f395f51905f52546040516001600160a01b039091168152602090f35b3461017c57602036600319011261017c576004356001600160401b03811161017c57602061094160409236906004016113b7565b919061094d838261177b565b82845193849283378101600181520301902081519061096b8261146d565b805491836001600160401b0360018060a01b0385169485845260a01c16928360208401526001808060a01b039101541691015282519182526020820152f35b3461017c575f36600319011261017c576002546040516001600160a01b039091168152602090f35b3461017c575f36600319011261017c576109ea611c44565b5f516020611ec25f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461017c57610a47366113fa565b9190610a516115ac565b92610a5c828461177b565b610a696102d083856119f6565b610a786040516102e48161146d565b610c15575b50610a8b82610a9394611856565b939091611aec565b92600484101592836103b15784610c0e57610aad90611c08565b8552610abc82602087016115e0565b610ac984604087016115e0565b80606086015260048210156103b15760038214610be5575060028103610b5a57506103b157600203610b0657610337905b6040519182918261150e565b6040516305bf8fb360e31b815260206004820152602560248201527f52657175697265732046756c6c20506572736f6e686f6f64207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b6001915014610b6e575b5061033790610afa565b60018114908115610bda575b5015610b865781610b64565b6040516305bf8fb360e31b815260206004820152602560248201527f526571756972657320506572736f6e686f6f64204c697465207665726966696360448201526430ba34b7b760d91b6064820152608490fd5b600291501482610b7a565b6040516305bf8fb360e31b815260206004820152908190610c0a906024830190611449565b0390fd5b505f610aad565b6001600160a01b03821603610c2a5784610a7d565b6040516305bf8fb360e31b815260206004820152602f60248201527f42617365206e616d6520726573657276656420666f72206f726967696e616c2060448201526e131a5d19481c9959da5cdd1c985b9d608a1b6064820152608490fd5b3461017c575f36600319011261017c576020604051626ebe008152f35b3461017c575f36600319011261017c57610337604051610cc660408261149c565b60058152640312e302e360dc1b6020820152604051918291602083526020830190611449565b3461017c575f36600319011261017c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610d435760206040515f516020611ee25f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261017c57610d666113e4565b6024356001600160401b03811161017c573660238201121561017c57610d969036906024816004013591016114d8565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610efb575b50610d4357610dd9611c44565b6040516352d1902d60e01b81526001600160a01b0382169290602081600481875afa5f9181610ec7575b50610e1b5783634c9c8ce360e01b5f5260045260245ffd5b805f516020611ee25f395f51905f52859203610eb55750823b15610ea3575f516020611ee25f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2805115610e8b5761024691611e35565b505034610e9457005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610ef3575b81610ee36020938361149c565b8101031261017c57519085610e03565b3d9150610ed6565b5f516020611ee25f395f51905f52546001600160a01b03161415905083610dcc565b3461017c576020610174610f30366113fa565b91611576565b3461017c57610f44366113fa565b9190610f4e61165d565b610f58818361177b565b610f628183611856565b5060048110156103b1576001036110f957610f7c916119f6565b604051610fdb825191602081818601948086835e8101600181520301902060405190610fa78261146d565b80546001600160a01b03808216845260a09190911c6001600160401b031660208401526001909101541660408201526117e2565b15610fe257005b626ebe0042018042116110e5577f4d72f477fa240edc1a91eaafd5ec14ee8c94142aa248fafb508ac804c9c5362d916001600160401b0360209216936040519561102b8761146d565b60018060a01b0316958681526001848201878152604083019033825260405187818751808a835e81018681520301902093518454915167ffffffffffffffff60a01b60a091821b166001600160e01b03199093169085901b85900391821667ffffffffffffffff60a01b1916179190911784559051929091018054929091166001600160a01b03166001600160a01b0319909216919091179055604051905190918291908190835e81015f815203902092604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b6040516305bf8fb360e31b815260206004820152602e60248201527f42617365207265736572766174696f6e2072657175697265732061206c69746560448201526d2d656c696769626c65206e616d6560901b6064820152608490fd5b3461017c57602036600319011261017c576004356001600160401b03811161017c5761033761119f61118f6111ad9336906004016113b7565b9061119a828261177b565b611856565b60405193849392849061143c565b604060208401526040830190611449565b3461017c576111cc366113fa565b91906111d661165d565b6111e0818361177b565b6040518183823760208183810160018152030190206112046040516102e48161146d565b611309575b50626ebe0042018042116110e5577f4d72f477fa240edc1a91eaafd5ec14ee8c94142aa248fafb508ac804c9c5362d916001600160401b036020921693604051956112538761146d565b60018060a01b03169586815260018482018781526040830190338252604051868682378087018481528190038801902093518454915167ffffffffffffffff60a01b60a091821b166001600160e01b03199093169085901b85900391821667ffffffffffffffff60a01b1916179190911784559051929091018054929091166001600160a01b03166001600160a01b03199092169190911790556040519182918190833781015f815203902092604051908152a3005b6001600160a01b0384160361131e5783611209565b6040516305bf8fb360e31b815260206004820152601e60248201527f42617365206e616d652068656c6420627920616e6f74686572207573657200006044820152606490fd5b3461017c57602036600319011261017c576004359063ffffffff60e01b821680920361017c5760209163a0c6dda960e01b81149081156113a6575b5015158152f35b6301ffc9a760e01b1490508361139f565b9181601f8401121561017c578235916001600160401b03831161017c576020838186019501011161017c57565b600435906001600160a01b038216820361017c57565b604060031982011261017c57600435906001600160401b03821161017c57611424916004016113b7565b90916024356001600160a01b038116810361017c5790565b9060048210156103b15752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b606081019081106001600160401b0382111761148857604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761148857604052565b6001600160401b03811161148857601f01601f191660200190565b9291926114e4826114bd565b916114f2604051938461149c565b82948184528183011161017c578281602093845f960137010152565b60a060606115549360208452805160208501526115336020820151604086019061143c565b61154460408201518386019061143c565b0151916080808201520190611449565b90565b60208091604051928184925191829101835e8101600181520301902090565b9161159461158d8361159a949561119a828261177b565b5091611aec565b90611bba565b6115a75761155490611c08565b505f90565b60405190608082018281106001600160401b0382111761148857604052606080835f81525f60208201525f60408201520152565b60048210156103b15752565b6001600160a01b0316801561164a575f516020611ec25f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60025460405163023aa9ab60e61b8152683932b3b4b9ba3930b960b91b600482015290602090829060249082906001600160a01b03165afa90811561172d575f91611738575b50604051636d46114f60e11b815233600482015290602090829060249082906001600160a01b03165afa90811561172d575f916116f2575b50156116e357565b633217675b60e21b5f5260045ffd5b90506020813d602011611725575b8161170d6020938361149c565b8101031261017c5751801515810361017c575f6116db565b3d9150611700565b6040513d5f823e3d90fd5b90506020813d602011611773575b816117536020938361149c565b8101031261017c57516001600160a01b038116810361017c5760206116a3565b3d9150611746565b908061178692611d38565b1561178d57565b6040516305bf8fb360e31b815260206004820152602660248201527f4e616d65206d757374206265206c6f7765726361736520415343494920444e53604482015265081b1858995b60d21b6064820152608490fd5b80516001600160a01b0316151590816117f9575090565b6001600160401b0391506020015116421090565b6040519061181c60608361149c565b602582526430ba34b7b760d91b6040837f52657175697265732046756c6c20706572736f6e686f6f64207665726966696360208201520152565b8161186091611c77565b60028111611978578082039182116110e5576005821115611938578160066002931015908161192c575b506118cf571461189f5760029061155461180d565b5f906040516118af60408261149c565b601081526f105d985a5b18589b19481d1bc8185b1b60821b602082015290565b146118df5760029061155461180d565b6001906040516118f060608261149c565b602681527f5265717569726573204c6967687420706572736f6e686f6f642076657269666960208201526531b0ba34b7b760d11b604082015290565b6008915011155f61188a565b505060039060405161194b60408261149c565b601781527f526573657276656420666f7220476f7665726e616e6365000000000000000000602082015290565b6040516305bf8fb360e31b8152602060048201526024808201527f4e616d652063616e2068617665206d6178696d756d20322064696769742073756044820152630ccccd2f60e31b6064820152608490fd5b908210156119d6570190565b634e487b7160e01b5f52603260045260245ffd5b80156110e5575f190190565b90805b80151580611abc575b80611a8c575b15611a1b57611a16906119ea565b6119f9565b9091611a26826114bd565b92611a34604051948561149c565b828452601f19611a43846114bd565b013660208601375f5b838110611a5a575050505090565b6001600160f81b0319611a6e8284866119ca565b35165f1a9085518110156119d6576001916020828801015301611a4c565b505f1981018181116110e557603960f81b906001600160f81b031990611ab39085876119ca565b35161115611a08565b505f1981018181116110e557600360fc1b906001600160f81b031990611ae39085876119ca565b35161015611a02565b6040805163886af13360e01b81526001600160a01b03909216600483015264646f746e7360d81b602483015281604481630a0100005afa801561172d575f90611b54575b60ff9150511660028114611b4e57600114611b49575f90565b600190565b50600290565b506040813d604011611bb2575b81611b6e6040938361149c565b8101031261017c57604051604081018181106001600160401b0382111761148857604052815160ff8116810361017c5760ff92602091835201516020820152611b30565b3d9150611b61565b60048110156103b15760028114611bf857600114611bd85750600190565b60048110156103b15760018114908115611bf0575090565b600291501490565b5060048110156103b15760021490565b600981106115a757600f811015611c3b575f5490600f0390600f82116110e5578181029181830414901517156110e55790565b505f5460011c90565b5f516020611ec25f395f51905f52546001600160a01b03163303611c6457565b63118cdaa760e01b5f523360045260245ffd5b5f9291908190815b611c8857505050565b909291935f1985018581116110e557600360fc1b6001600160f81b0319611cb08388876119ca565b351610159081611ce7575b5015611cdf575f1981146110e5576001611cd69101946119ea565b91929082611c7f565b935090915050565b603960f81b91506001600160f81b031990611d039087866119ca565b351611155f611cbb565b60ff5f516020611f025f395f51905f525460401c1615611d2957565b631afcd79f60e31b5f5260045ffd5b908215611dff5780156119d65781356001600160f81b031916602d60f81b148015611e06575b611dff575f5b838110611d745750505050600190565b6001600160f81b0319611d888284866119ca565b3516606160f81b8110159081611df0575b600360fc1b81101580611de2575b8215611dda575b508115611dcc575b5015611dc457600101611d64565b505050505f90565b602d60f81b1490505f611db6565b91505f611dae565b50603960f81b811115611da7565b603d60f91b8111159150611d99565b5050505f90565b505f1983018381116110e557602d60f81b906001600160f81b031990611e2d9084866119ca565b351614611d5e565b905f8091602081519101845af48080611eae575b15611e695750506040513d81523d5f602083013e60203d82010160405290565b15611e8e57639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b3d15611e9f576040513d5f823e3d90fd5b63d6bda27560e01b5f5260045ffd5b503d151580611e495750813b1515611e4956fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212203bb05b17ebd03e61457d78bd4b4821d2da326b08f0c17dd203cd8c9dd922de0e64736f6c63430008220033","sourceMap":"1077:16231:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;8605:39;8583:4;1077:16231;;;;;;;;:::i;:::-;8583:4;;;;:::i;:::-;8605:39;:::i;:::-;1077:16231;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;2324:62:61;;:::i;:::-;3198:20:7;;1077:16231;;3276:53;1077:16231;;;;;;;;;;;;;3276:53;1077:16231;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;2378:1:61;1077:16231:7;;:::i;:::-;2324:62:61;;:::i;:::-;2378:1;:::i;:::-;1077:16231:7;;;;;;;;:::i;:::-;;;;;;:::i;:::-;7652:4;;;;;:::i;:::-;7727:28;;;;:::i;:::-;7788;;;;;;:::i;:::-;1077:16231;;;;;;;7856:78;1077:16231;7856:78;7986:32;8097:18;7856:78;:32;;:78;:32;;;7891:39;;;:::i;:::-;1077:16231;;7944:32;:15;;;:32;;;:::i;:::-;1077:16231;7986:19;;:32;:::i;:::-;8028:16;;;:33;;;8097:18;:::i;:::-;1077:16231;:::i;:::-;8195:20;1077:16231;;;;;:::i;:::-;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;7944:15;1077:16231;;;;;;;;;;;;;;;8195:20;:::i;:::-;:56;;;;7856:78;8191:215;;;;7856:78;1077:16231;;;;;;;;;:::i;:::-;;;;8191:215;1077:16231;;8367:28;;1077:16231;8028:16;1077:16231;;:::i;:::-;;;;;7944:15;1077:16231;;;-1:-1:-1;;;1077:16231:7;;;;;;8191:215;;;;8195:56;-1:-1:-1;;;;;1077:16231:7;8219:32;;;-1:-1:-1;8195:56:7;;;;7856:78;1077:16231;7856:78;;1077:16231;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;:::i;:::-;1891:67;;;:::i;:::-;16644:8;;;;:::i;:::-;1077:16231;;;;;;;;;;;16696:12;1077:16231;;;;;;17031:20;1077:16231;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;17031:20;:::i;:::-;17027:193;;1077:16231;;;16696:12;1077:16231;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1077:16231:7;;;;;17273:26;1077:16231;17273:26;;1077:16231;17027:193;17092:10;:36;1077:16231;;17027:193;;;1077:16231;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;;;;;;4301:16:80;1077:16231:7;-1:-1:-1;;;;;1077:16231:7;;4724:16:80;;:34;;;;1077:16231:7;;4788:16:80;:50;;;;1077:16231:7;4853:13:80;:30;;;;1077:16231:7;4849:91:80;;;-1:-1:-1;;1077:16231:7;;;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;4977:67:80;;1077:16231:7;6891:76:80;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;2472:10:7;6959:1:80;:::i;:::-;6891:76;;:::i;:::-;2324:62:61;;:::i;:::-;3198:20:7;;1077:16231;;3276:53;1077:16231;;;;;;;;;;;;;3276:53;1077:16231;;;;;2563:27;1077:16231;;;2563:27;1077:16231;5064:101:80;;1077:16231:7;5064:101:80;1077:16231:7;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;-1:-1:-1;;;;;;;;;;;1077:16231:7;5140:14:80;1077:16231:7;;;;;;5140:14:80;1077:16231:7;4977:67:80;-1:-1:-1;;1077:16231:7;;;-1:-1:-1;;;;;;;;;;;1077:16231:7;4977:67:80;;;4849:91;4906:23;;;1077:16231:7;4906:23:80;1077:16231:7;;4906:23:80;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:80;;4724:34;;;-1:-1:-1;4724:34:80;;1077:16231:7;;;;;;-1:-1:-1;;1077:16231:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1403:71;1077:16231;;;;;;;;;1403:71;1077:16231;;;;;1403:71;;1077:16231;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;5169:30;1077:16231;;;;;;;;:::i;:::-;5133:8;;;;;:::i;:::-;5169:30;:::i;:::-;5216:11;1077:16231;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;:::i;:::-;5866:8;;;;;;:::i;:::-;1077:16231;;;;;;;;;;5918:12;1077:16231;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;5958:20;;;:::i;:::-;1077:16231;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;:::i;:::-;5479:8;;;;;;:::i;:::-;1077:16231;;;;;;;;;;5528:12;1077:16231;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;5528:12;1077:16231;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;1674:46;1077:16231;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;2324:62:61;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1077:16231:7;;-1:-1:-1;;;;;;1077:16231:7;;;;;;;-1:-1:-1;;;;;1077:16231:7;3996:40:61;1077:16231:7;;3996:40:61;1077:16231:7;;;;;;;;:::i;:::-;;;;;:::i;:::-;6283:4;;;;;:::i;:::-;1077:16231;11288:18;;;;:::i;1077:16231::-;11386:20;1077:16231;;;;;:::i;11386:20::-;11382:199;;1077:16231;6411:28;;;6472;6411;;:::i;:::-;6472;;;;:::i;:::-;1077:16231;;;;;;;;;6540:32;;;6575:39;;;:::i;:::-;1077:16231;;6628:32;:15;1077:16231;6628:15;;:32;:::i;:::-;6670;:19;1077:16231;6670:19;;:32;:::i;:::-;6712:16;1077:16231;6712:16;;:33;1077:16231;;;;;;6782:18;6764:36;;1077:16231;;-1:-1:-1;6860:17:7;6842:35;;6860:17;;1077:16231;;;6860:17;6918:31;1077:16231;;;6838:431;;1077:16231;;;;;;;:::i;:::-;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;6838:431;11349:12;1077:16231;;7035:35;7031:238;;6838:431;;1077:16231;6838:431;;;7031:238;11349:12;7111:31;;:66;;;;;7031:238;1077:16231;;;;7031:238;;;1077:16231;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;7111:66;6860:17;1077:16231;;7146:31;7111:66;;;1077:16231;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;:::i;:::-;;;;6540:78;;1077:16231;6540:78;;11382:199;-1:-1:-1;;;;;1077:16231:7;;11447:32;1077:16231;;11382:199;;;1077:16231;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;;1586:8;1077:16231;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1077:16231:7;;;;4840:6:81;-1:-1:-1;;;;;1077:16231:7;4831:4:81;4823:23;4819:145;;1077:16231:7;;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;;4819:145:81;4594:29;;;1077:16231:7;4924:29:81;1077:16231:7;;4924:29:81;1077:16231:7;;;-1:-1:-1;;1077:16231:7;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;4417:6:81;1077:16231:7;4408:4:81;4400:23;;;:120;;;;1077:16231:7;4383:251:81;;;2324:62:61;;:::i;:::-;1077:16231:7;;-1:-1:-1;;;5881:52:81;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;5881:52:81;;1077:16231:7;;5881:52:81;;;1077:16231:7;-1:-1:-1;5877:437:81;;1805:47:73;;;;1077:16231:7;6243:60:81;1077:16231:7;;;;6243:60:81;5877:437;5975:40;-1:-1:-1;;;;;;;;;;;5975:40:81;;;5971:120;;1748:29:73;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;-1:-1:-1;;;;;;1077:16231:7;;;;;2407:36:73;-1:-1:-1;;2407:36:73;1077:16231:7;;2458:15:73;:11;;2489:53;;;:::i;2454:148::-;6163:9;;;6159:70;;1077:16231:7;6159:70:73;6199:19;;;1077:16231:7;6199:19:73;1077:16231:7;;6199:19:73;1744:119;1805:47;;;1077:16231:7;1805:47:73;1077:16231:7;;;;1805:47:73;5971:120:81;6042:34;;;1077:16231:7;6042:34:81;1077:16231:7;;;;6042:34:81;5881:52;;;;1077:16231:7;5881:52:81;;1077:16231:7;5881:52:81;;;;;;1077:16231:7;5881:52:81;;;:::i;:::-;;;1077:16231:7;;;;2159:16:35;5881:52:81;;;;;;;-1:-1:-1;5881:52:81;;4400:120;-1:-1:-1;;;;;;;;;;;1077:16231:7;-1:-1:-1;;;;;1077:16231:7;4478:42:81;;;-1:-1:-1;4400:120:81;;;1077:16231:7;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;1891:67;;;;:::i;:::-;3878:4;;;;:::i;:::-;3924:28;;;;:::i;:::-;1077:16231;;;;;;;4001:17;3983:35;1077:16231;;4140:18;;;:::i;:::-;1077:16231;;4251:28;1077:16231;;;;;;;;;;;;;;;4001:17;1077:16231;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;4251:28;:::i;:::-;4250:29;4246:723;;1077:16231;4246:723;1586:8;4708:15;1077:16231;4708:15;;1077:16231;;;4903:55;1077:16231;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;4001:17;4806:78;;;1077:16231;;;;4806:78;;4872:10;;1077:16231;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;-1:-1:-1;;;;;;1077:16231:7;;;;;;;;;;;;;-1:-1:-1;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;-1:-1:-1;;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4903:55;1077:16231;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;3625:28;1077:16231;;;;;;;;:::i;:::-;3603:4;;;;;:::i;:::-;3625:28;:::i;:::-;1077:16231;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;1891:67;;;;:::i;:::-;15423:8;;;;:::i;:::-;1077:16231;;;;;;;;;;;15473:12;1077:16231;;;;;;15509:17;1077:16231;;;;;:::i;15509:17::-;15505:531;;1077:16231;16256:15;1586:8;16256:15;1077:16231;16256:15;;1077:16231;;;16435:51;1077:16231;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;15473:12;16342:78;;;1077:16231;;;;16342:78;;16408:10;;1077:16231;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;-1:-1:-1;;;;;;1077:16231:7;;;;;;;;;;;;;-1:-1:-1;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;-1:-1:-1;;;;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1077:16231:7;;;;;;;;;;;16435:51;1077:16231;15505:531;-1:-1:-1;;;;;1077:16231:7;;15951:29;1077:16231;;15505:531;;;1077:16231;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14489:42:7;;;:82;;;;1077:16231;;;;;;;14489:82;-1:-1:-1;;;1119:40:66;;-1:-1:-1;14489:82:7;;;1077:16231;;;;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;:::o;:::-;;-1:-1:-1;;1077:16231:7;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1077:16231:7;;;;;;;;-1:-1:-1;;1077:16231:7;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;:::o;:::-;;;;-1:-1:-1;1077:16231:7;;;;;-1:-1:-1;1077:16231:7;;;;;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;:::o;:::-;-1:-1:-1;;;;;1077:16231:7;;;;;;-1:-1:-1;;1077:16231:7;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1077:16231:7;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;11349:12;1077:16231;;;;;;;:::o;8687:418::-;;8983:24;8919:28;8687:418;8961:47;8687:418;;8880:4;;;;:::i;8919:28::-;8983:24;;;:::i;:::-;8961:47;;:::i;:::-;8957:86;;9059:39;;;:::i;8957:86::-;9024:8;1077:16231;9024:8;:::o;1077:16231::-;;;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;;;;-1:-1:-1;1077:16231:7;;-1:-1:-1;1077:16231:7;;;;-1:-1:-1;1077:16231:7;;;;;;:::o;:::-;;;;;;;;:::o;3426:215:61:-;-1:-1:-1;;;;;1077:16231:7;3510:22:61;;3506:91;;-1:-1:-1;;;;;;;;;;;1077:16231:7;;-1:-1:-1;;;;;;1077:16231:7;;;;;;;-1:-1:-1;;;;;1077:16231:7;3996:40:61;-1:-1:-1;;3996:40:61;3426:215::o;3506:91::-;3555:31;;;3530:1;3555:31;3530:1;3555:31;1077:16231:7;;3530:1:61;3555:31;14965:230:7;15056:16;1077:16231;;;-1:-1:-1;;;15056:46:7;;-1:-1:-1;;;15056:46:7;;;1077:16231;;;;;;15056:46;;1077:16231;;-1:-1:-1;;;;;1077:16231:7;15056:46;;;;;;;-1:-1:-1;15056:46:7;;;14965:230;-1:-1:-1;1077:16231:7;;-1:-1:-1;;;15121:51:7;;15160:10;15056:46;15121:51;;1077:16231;;;;;;15056:46;;1077:16231;;-1:-1:-1;;;;;1077:16231:7;15121:51;;;;;;;-1:-1:-1;15121:51:7;;;14965:230;3379:20:35;;;;14965:230:7:o;3379:20:35:-;;;;-1:-1:-1;3379:20:35;15056:46:7;-1:-1:-1;3379:20:35;15121:51:7;;;1077:16231;15121:51;;1077:16231;15121:51;;;;;;1077:16231;15121:51;;;:::i;:::-;;;3379:20:35;;;;;1077:16231:7;;;3379:20:35;;;;15121:51:7;;;;;;-1:-1:-1;15121:51:7;;;1077:16231;;3379:20:35;-1:-1:-1;3379:20:35;;;;;15056:46:7;;;1077:16231;15056:46;;1077:16231;15056:46;;;;;;1077:16231;15056:46;;;:::i;:::-;;;3379:20:35;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;15056:46;;;;;-1:-1:-1;15056:46:7;;14117:166;;;2451:35:39;14117:166:7;2451:35:39;:::i;:::-;1077:16231:7;;;14117:166::o;1077:16231::-;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;11669:174;1077:16231;;-1:-1:-1;;;;;1077:16231:7;11764:31;;;;:72;;11757:79;11669:174;:::o;11764:72::-;-1:-1:-1;;;;;11799:19:7;;;;1077:16231;;11821:15;-1:-1:-1;11669:174:7;:::o;1077:16231::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;:::o;13117:994::-;;13353:26;13117:994;13353:26;:::i;:::-;13416:1;13398:19;;1077:16231;;;;;;;;;;13557:1;13543:15;;;13539:100;;13653:15;13667:1;13416;13653:15;;;:34;;;;13117:994;13649:271;;;13934:19;13930:97;;13416:1;1077:16231;;;:::i;13930:97::-;1077:16231;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1077:16231:7;;;;13969:47;:::o;13649:271::-;13707:19;13703:126;;13416:1;1077:16231;;;:::i;13703:126::-;13754:17;1077:16231;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;13746:68;:::o;13653:34::-;13686:1;13672:15;;;;13653:34;;;13539:100;13574:54;;13582:18;1077:16231;;;;;;;:::i;:::-;;;;;;;;;13574:54;:::o;1077:16231::-;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;1077:16231:7;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;1077:16231:7;;:::o;12544:567::-;;12693:38;12742:176;12762:15;;;:53;;;12742:176;12762:107;;;12742:176;12762:107;;;12894:13;;;:::i;:::-;12742:176;;12762:107;;;1077:16231;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1077:16231:7;;;:::i;:::-;;;;;;;-1:-1:-1;13002:15:7;;;;;;13083:21;;;;12544:567;:::o;13019:3::-;-1:-1:-1;;;;;;13050:12:7;;;;;:::i;:::-;;1077:16231;-1:-1:-1;13038:24:7;1077:16231;;;;;;;;;;;;;;;13038:24;1077:16231;12987:13;;12762:107;-1:-1:-1;;;1077:16231:7;;;;;;;-1:-1:-1;;;1077:16231:7;-1:-1:-1;;;;;;1077:16231:7;12835:26;;;;;:::i;:::-;;1077:16231;12835:34;;12762:107;;:53;-1:-1:-1;;;1077:16231:7;;;;;;;-1:-1:-1;;;1077:16231:7;-1:-1:-1;;;;;;1077:16231:7;12781:26;;;;;:::i;:::-;;1077:16231;12781:34;;12762:53;;9675:392;1077:16231;;;-1:-1:-1;;;9801:112:7;;-1:-1:-1;;;;;1077:16231:7;;;9801:112;;;1077:16231;-1:-1:-1;;;2159:16:35;;;1077:16231:7;;9801:112;1077:16231;1769:42:35;9801:112:7;;;;;;1077:16231;9801:112;;;9675:392;1077:16231;2159:16:35;;;1077:16231:7;9942:1;9927:16;;9923:46;;9998:1;9983:16;9979:46;;1077:16231;9675:392;:::o;9979:46::-;9998:1;10001:24;:::o;9923:46::-;9945:24;9942:1;9945:24;:::o;9801:112::-;;1077:16231;9801:112;;1077:16231;9801:112;;;;;;1077:16231;9801:112;;;:::i;:::-;;;2159:16:35;;;;1077:16231:7;;;;;;;;-1:-1:-1;;;;;1077:16231:7;;;;;;;2159:16:35;;1077:16231:7;;;2159:16:35;;;;1077:16231:7;2159:16:35;;;;;;;;;;;9801:112:7;;;;;-1:-1:-1;9801:112:7;;10356:368;1077:16231;;;;;;10473:17;10461:29;;10457:98;;1077:16231;10568:29;10564:133;;10706:11;1077:16231;10356:368;:::o;10564:133::-;1077:16231;;;;;;;10620:31;;:66;;;;;10613:73;;:::o;10620:66::-;10473:17;1077:16231;;10655:31;10613:73;:::o;10457:98::-;1077:16231;;;;;;;10473:17;10513:31;10506:38;:::o;10730:293::-;10849:1;10836:14;;10832:53;;10913:2;10899:16;;;10895:71;;1077:16231;;;10913:2;1077:16231;;10913:2;1077:16231;;;;;;;;;;;;;;;;;;10730:293;:::o;10895:71::-;1077:16231;;;;;10931:24;:::o;2679:162:61:-;-1:-1:-1;;;;;;;;;;;1077:16231:7;-1:-1:-1;;;;;1077:16231:7;987:10:65;2738:23:61;2734:101;;2679:162::o;2734:101::-;2784:40;;;-1:-1:-1;2784:40:61;987:10:65;2784:40:61;1077:16231:7;;-1:-1:-1;2784:40:61;11995:457:7;1077:16231;;11995:457;;;;;12261:5;;;11995:457;;;:::o;12268:3::-;1077:16231;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;12291:17:7;;;;;:::i;:::-;;1077:16231;12291:25;;:54;;;;12268:3;-1:-1:-1;12287:149:7;;;-1:-1:-1;;1077:16231:7;;;;12306:1;12268:3;1077:16231;;12287:149;12268:3;:::i;:::-;12235:24;;;;;;12287:149;12416:5;-1:-1:-1;12416:5:7;;-1:-1:-1;;11995:457:7:o;12291:54::-;-1:-1:-1;;;1077:16231:7;-1:-1:-1;;;;;;;1077:16231:7;12320:17;;;;;:::i;:::-;;1077:16231;12320:25;;12291:54;;;7082:141:80;1077:16231:7;-1:-1:-1;;;;;;;;;;;1077:16231:7;;;;7148:18:80;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:80;;-1:-1:-1;7189:17:80;5155:618:39;;5334:12;;5330:30;;1077:16231:7;;;;5374:12:39;;-1:-1:-1;;;;;;1077:16231:7;-1:-1:-1;;;5374:28:39;:62;;;;5155:618;5370:80;;-1:-1:-1;5485:7:39;;;;;;5755:11;;;;1077:16231:7;5155:618:39;:::o;5494:3::-;-1:-1:-1;;;;;;5527:8:39;;;;;:::i;:::-;;1077:16231:7;;;;5568:12:39;;;:28;;;;5494:3;-1:-1:-1;;;5625:12:39;;;;:28;;5494:3;5673:22;;;;5494:3;5673:46;;;;;5494:3;5671:49;;5667:67;;1077:16231:7;;5466:17:39;;5667:67;5722:12;;;;-1:-1:-1;5722:12:39;:::o;5673:46::-;-1:-1:-1;;;5699:20:39;;-1:-1:-1;5673:46:39;;;:22;;-1:-1:-1;5673:22:39;;;5625:28;-1:-1:-1;;;;5641:12:39;;;5625:28;;5568;-1:-1:-1;;;5584:12:39;;;;-1:-1:-1;5568:28:39;;5370:80;5438:12;;;-1:-1:-1;5438:12:39;:::o;5374:62::-;-1:-1:-1;;;1077:16231:7;;;;;;;-1:-1:-1;;;1077:16231:7;-1:-1:-1;;;;;;1077:16231:7;5406:14:39;;;;;:::i;:::-;;1077:16231:7;5406:30:39;5374:62;;4691:549:87;;-1:-1:-1;4691:549:87;;3490:129:91;;;;;;;;;;4874:72:87;;4691:549;4870:364;;;4774:252:91;;;;;;;;-1:-1:-1;3490:129:91;4774:252;;;3490:129;4774:252;;;;;;4962:32:87;:::o;4870:364::-;5011:223;;;-1:-1:-1;;;;5045:24:87;;;-1:-1:-1;;;;;1077:16231:7;;;;5045:24:87;1077:16231:7;;;5045:24:87;5011:223;4536:73:91;5090:33:87;4536:73:91;;1077:16231:7;;3379:20:35;-1:-1:-1;3379:20:35;;;;;5086:148:87;5204:19;;;-1:-1:-1;5204:19:87;;-1:-1:-1;5204:19:87;4874:72;-1:-1:-1;4536:73:91;4886:33:87;;;4874:72;4886:59;4923:18;;;:22;;4874:72;","linkReferences":{},"immutableReferences":{"56145":[{"start":3326,"length":32},{"start":3489,"length":32}]}},"methodIdentifiers":{"MAX_RESERVATION_TIME()":"68e344e9","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","classifyName(string)":"3017fa33","getBaseNameReservation(string)":"8ac7f0f5","initialize(uint256,address)":"da35a26f","isBaseName(string)":"b4956ade","isBaseNameReserved(string)":"91809994","owner()":"8da5cb5b","price(string)":"fe2c6198","priceWithCheck(string,address)":"6bbfce2b","priceWithoutCheck(string,address)":"dcd62573","protocolRegistry()":"7656419f","proxiableUUID()":"52d1902d","reachFee(string,address)":"453fa0f4","releaseBaseName(string)":"dbc13dda","renounceOwnership()":"715018a6","reservations(string)":"c5c95048","reserveBaseName(string,address)":"35696fa7","reserveBaseNameForPop(string,address)":"2b0282ae","startingPrice()":"d6fbf202","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","updateStartingPrice(uint256)":"f6d3dec2","upgradeToAndCall(address,bytes)":"4f1ef286","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegistry\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"PopError\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"BaseNameReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"}],\"name\":\"BaseNameReserved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newPrice\",\"type\":\"uint256\"}],\"name\":\"StartingPriceUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MAX_RESERVATION_TIME\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"classifyName\",\"outputs\":[{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"requirement\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"getBaseNameReservation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"reservationOwner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expiryTimestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_startingPrice\",\"type\":\"uint256\"},{\"internalType\":\"contract IDotnsProtocolRegistry\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"isBaseName\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isBase\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"isBaseNameReserved\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isReserved\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"reservationOwner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expiryTimestamp\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"priceWithCheck\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"userStatus\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"internalType\":\"struct IPopRules.PriceWithMeta\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"priceWithoutCheck\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"enum IPopRules.PopStatus\",\"name\":\"userStatus\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"internalType\":\"struct IPopRules.PriceWithMeta\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolRegistry\",\"outputs\":[{\"internalType\":\"contract IDotnsProtocolRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"reachFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"releaseBaseName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"}],\"name\":\"reservations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"expires\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"reserveBaseName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseName\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"reserveBaseNameForPop\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"startingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"supported\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStartingPrice\",\"type\":\"uint256\"}],\"name\":\"updateStartingPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"versionString\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"custom:security-contact\":\"admin@parity.io\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"PopError(string)\":[{\"params\":{\"reason\":\"Human-readable explanation of the failure condition.\"}}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"BaseNameReleased(string)\":{\"params\":{\"baseName\":\"The base label whose reservation was released.\"}},\"BaseNameReserved(string,address,uint64)\":{\"params\":{\"baseName\":\"The digit-stripped label receiving the reservation.\",\"expires\":\"UNIX timestamp when the reservation expires.\",\"owner\":\"Address obtaining the reservation right.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"StartingPriceUpdated(uint256,uint256)\":{\"details\":\"Owner-only setter {updateStartingPrice}; the new value is consumed by `_priceValidatedName` on the next pricing read.\",\"params\":{\"newPrice\":\"New wei value.\",\"oldPrice\":\"Previous wei value.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"classifyName(string)\":{\"details\":\"Pure; inputs are the label bytes only. Callers use the returned tier to decide which pricing and verification branch applies.\",\"params\":{\"name\":\"The name label being evaluated.\"},\"returns\":{\"message\":\"Explanation of the classification result.\",\"requirement\":\"Required tier for registration.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getBaseNameReservation(string)\":{\"details\":\"Raw accessor: returns the stored slot regardless of expiry. Use {isBaseNameReserved} when live-window semantics are needed.\",\"params\":{\"baseName\":\"The base label without trailing digits.\"},\"returns\":{\"expiryTimestamp\":\"UNIX timestamp when the reservation expires.\",\"reservationOwner\":\"The address assigned to the reservation.\"}},\"initialize(uint256,address)\":{\"custom:reverts\":\"InvalidInitialization\",\"params\":{\"_startingPrice\":\"Base price in wei for NoStatus users.\",\"registry\":\"Protocol-level address registry used to resolve sibling contracts.\"}},\"isBaseName(string)\":{\"details\":\"A base name has no trailing digits; lite-person labels always have at least two trailing digits, so the two spaces are disjoint.\",\"params\":{\"name\":\"The label to check.\"},\"returns\":{\"isBase\":\"True when the label has no trailing digits.\"}},\"isBaseNameReserved(string)\":{\"details\":\"Applies the live-window predicate to the stored slot so an expired reservation reads as free.\",\"params\":{\"baseName\":\"The base label without trailing digits.\"},\"returns\":{\"expiryTimestamp\":\"UNIX timestamp when the reservation expires.\",\"isReserved\":\"True if a live reservation is active.\",\"reservationOwner\":\"The reservation holder (zero when not reserved).\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"price(string)\":{\"details\":\"Pure length-based pricing; ignores PoP status and reservation state.\",\"params\":{\"name\":\"Domain label to price.\"},\"returns\":{\"_0\":\"Registration cost in wei.\"}},\"priceWithCheck(string,address)\":{\"details\":\"Reverting pricing path used by the commit-reveal controller. Rejects governance-reserved names and base-name registrations held by another user. Price is a spam deterrent and is significant only for NoStatus users; verified users pay zero.\",\"params\":{\"name\":\"Domain label.\",\"userAddress\":\"Registering user for the given label.\"},\"returns\":{\"metadata\":\"Price with PoP requirements and classification.\"}},\"priceWithoutCheck(string,address)\":{\"details\":\"Non-reverting counterpart to `priceWithCheck`: surfaces the same fields, but reports a `Reserved` status through `metadata` instead of reverting when the base stem is held by another user. Used by front-ends that need to present a price and eligibility preview without forcing a transaction attempt. Governance-reserved names are not rejected here either; the caller decides what to do.\",\"params\":{\"name\":\"Domain label.\",\"userAddress\":\"Registering user for the given label.\"},\"returns\":{\"metadata\":\"Price with PoP requirements and classification.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reachFee(string,address)\":{\"details\":\"Non-zero only when `account` cannot meet the label's required PoP tier; the value is the length-scaled list price. Acts as cross-payer friction at registration time and as the transfer-time floor consumed by `DotnsNameEscrow.chargeTransferFee`.\",\"params\":{\"account\":\"Account whose verification reach is being measured.\",\"name\":\"Domain label being acted on.\"}},\"releaseBaseName(string)\":{\"details\":\"Callable by controllers in the registrar's `controllers` set. Live reservations may only be cleared by the same controller that wrote them; expired reservations may be cleared by any authorised controller. Used by the PoP controller when a reservation is claimed, relinquished, or a queue head promotion leaves the slot empty.\",\"params\":{\"baseName\":\"The base label whose reservation should be cleared.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"reserveBaseName(string,address)\":{\"details\":\"Commit-reveal reservation path. Callable only by an authorised controller on the registrar. Reverts unless the label is classified as `PopLite`; no-ops when the slot is already live so concurrent registrations cannot stomp the original reserver.\",\"params\":{\"baseName\":\"The base label with trailing digits removed.\",\"user\":\"The address receiving reservation rights.\"}},\"reserveBaseNameForPop(string,address)\":{\"details\":\"Gateway-driven reservation path used by the PoP controller. Callable by any controller in the registrar's `controllers` set. Does not apply the lite-format classification that `reserveBaseName` enforces; the caller supplies the bare stem directly. Reverts if the slot is already held by another user and still live so the caller's local bookkeeping and PopRules state stay in lockstep. If the slot is already live for the same user, refreshes expiry to `block.timestamp + MAX_RESERVATION_TIME`.\",\"params\":{\"baseName\":\"The base label to reserve (no trailing digits).\",\"user\":\"The address receiving reservation rights.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateStartingPrice(uint256)\":{\"details\":\"Owner-only. The new value flows into `_priceValidatedName` on the next pricing read; no redeploy. Emits {StartingPriceUpdated}.\",\"params\":{\"newStartingPrice\":\"New base price in wei.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"title\":\"PopRules\",\"version\":1},\"userdoc\":{\"errors\":{\"NotRegistry()\":[{\"notice\":\"Thrown when a caller is not an authorised controller on the registrar.\"}],\"PopError(string)\":[{\"notice\":\"Thrown when a name violates PoP-tier or reservation requirements.\"}]},\"events\":{\"BaseNameReleased(string)\":{\"notice\":\"Emitted when a base-name reservation is cleared.\"},\"BaseNameReserved(string,address,uint64)\":{\"notice\":\"Emitted when a base name receives a reservation.\"},\"StartingPriceUpdated(uint256,uint256)\":{\"notice\":\"Emitted when the spam-deterrent NoStatus starting price is rotated.\"}},\"kind\":\"user\",\"methods\":{\"MAX_RESERVATION_TIME()\":{\"notice\":\"Maximum time a base name can be reserved.\"},\"classifyName(string)\":{\"notice\":\"Classifies a name into a required PoP tier per DotNS naming rules.\"},\"getBaseNameReservation(string)\":{\"notice\":\"Retrieves reservation information for a base name.\"},\"initialize(uint256,address)\":{\"notice\":\"Initialises the oracle (public entry point).\"},\"isBaseName(string)\":{\"notice\":\"Returns whether `name` is a base name under PoP rules.\"},\"isBaseNameReserved(string)\":{\"notice\":\"Indicates whether a base name is currently reserved.\"},\"price(string)\":{\"notice\":\"Calculates registration cost for a label.\"},\"priceWithCheck(string,address)\":{\"notice\":\"Calculates price with PoP classification and reservation enforcement.\"},\"priceWithoutCheck(string,address)\":{\"notice\":\"Calculates price with PoP classification and reservation metadata, without reverting\"},\"protocolRegistry()\":{\"notice\":\"Protocol-level address registry for all DotNS contracts.\"},\"reachFee(string,address)\":{\"notice\":\"Friction fee owed when `account` reaches into a label tier above its verification\"},\"releaseBaseName(string)\":{\"notice\":\"Clears a reservation for a base-name stem.\"},\"reservations(string)\":{\"notice\":\"Active reservations keyed by digit-stripped base name.\"},\"reserveBaseName(string,address)\":{\"notice\":\"Creates a reservation entry for the digit-stripped version of a name.\"},\"reserveBaseNameForPop(string,address)\":{\"notice\":\"Writes or refreshes a reservation for a bare base-name stem.\"},\"startingPrice()\":{\"notice\":\"Wei price for names with 9 characters and up.\"},\"updateStartingPrice(uint256)\":{\"notice\":\"Updates the spam-deterrent starting price for NoStatus pricing.\"},\"version()\":{\"notice\":\"Returns implementation version.\"}},\"notice\":\"Implements DotNS pricing with PoP-tier validation and base-name reservations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/pop/PopRules.sol\":\"PopRules\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\"],\"viaIR\":true},\"sources\":{\"contracts/escrow/IDotnsNameEscrow.sol\":{\"keccak256\":\"0x6635523fe200a1244bf01aaf55a592700a4f4af0ebfb5fad7fb5bd58e8048855\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7999b1f1119b00095c11bb52d10033e9963a741eb942ae181321d6ef8bb5184b\",\"dweb:/ipfs/QmZ5pWhRxidxMNnCLqzQyAGTVpjyu8mB5GCJ3SnivtGRpY\"]},\"contracts/external/personhood/IPersonhood.sol\":{\"keccak256\":\"0xea1aff2d5d7c5220b22c9e917ea404c875bff990129657462d7e9aa160b6af9e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://43e3363a16e781b16ebfc321060a1516444ba784c3aa848b527d6c5f9564da35\",\"dweb:/ipfs/QmQ9zLQMehpubHDP6zBDuEvDF7K8hBKuu5X1gX9qJCsi83\"]},\"contracts/pop/IPopRules.sol\":{\"keccak256\":\"0x138186f031e701865eb19b89aebcd724114b25b32d486cee90488b9d1b9a2915\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b14c57d9bccd4194d5bb3e4baf282779650c08e109715bc4ce6c42b52d466886\",\"dweb:/ipfs/QmVQeF353sS9ahjza9v46CBnwFkoD3wxGnj2cSJMa5RGG5\"]},\"contracts/pop/PopRules.sol\":{\"keccak256\":\"0xbc30f6b7b2bc57487b7b4fca17823a26428b494cd57f5bf6237cfc279a686d1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://209e3af3f02454787f8c6d0cace67293448d0da6afd0a47f048b5279012df7b4\",\"dweb:/ipfs/QmdUhQdwkNfEiRXzJGBCDX5aepRmYy8cLLJ3edcVCRfc8i\"]},\"contracts/registrars/DotnsRegistrar.sol\":{\"keccak256\":\"0x6819848d9defec02d3497629da938270d18e1c1f7e7178bf909393ae95225916\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da6fa64ce598f715ba4a6f7c21db88bbb70c0cde9e90dab244bdd176e2b244e4\",\"dweb:/ipfs/QmQuizsK4RkDzknotuPoazu45mCoXFQgFkoCC1QxHSkn8e\"]},\"contracts/registrars/IDotnsController.sol\":{\"keccak256\":\"0x36304c2a145c90a6d07bb2630e9e599698325dfb01b4ec0f3c1dfb1853858844\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b3098427beb68f49940a93d5feca7c1b5424ee99f9531616326439df81bf0cf\",\"dweb:/ipfs/QmUdyDbSb2eDZyrwsg3pv31PyCe6a2VnjoamXFGr4DxvRu\"]},\"contracts/registrars/IDotnsRegistrar.sol\":{\"keccak256\":\"0x8676a5ffab195b378e9f483b05c8ea52fab07aa20141d1d78dc88c6c2c093a6e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd57503d29497559921fca75e636a6a579d6a5dc50099e8cd8eb35b59592eaf9\",\"dweb:/ipfs/QmfDCwPkEkMn1FxMnekPeYrq4Q1SLpr9qWFWUSFcJpWMP9\"]},\"contracts/registry/IDotnsProtocolRegistry.sol\":{\"keccak256\":\"0xdc233ef72cd7eb07bf8631b4de779d2f79671b76051d1d0f81aeb5c86567269e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81f992df80f7f53854ef309c5ed76de1180e10a3af66c86a901e46fa1a1aaae5\",\"dweb:/ipfs/QmbL4WUsWrupbvrz8uKPhp7YEePzdE9z8GpZvrZ5DvTWws\"]},\"contracts/resolvers/IDotnsReverseResolver.sol\":{\"keccak256\":\"0xaba5d1260aef33c19489f2f641b6c0ef026d24c9095cf69667818c6a211826e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d99905afa1cd71331cb4f602e0c9e0743a903ebc8e70657159af25c3503d0de\",\"dweb:/ipfs/QmRWpZu7TsJ6SVcsDomaK5CGrQSPhYYWgkHayxyuBqQqie\"]},\"contracts/store/IDotnsStore.sol\":{\"keccak256\":\"0xc477b3a4354a66aa9565b7e045504127389956eb4ba0b9c981631f276b598cca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://690a2b096d0779395b22062839e2d37338c3db03c248c05779dbf2ffffeb0c71\",\"dweb:/ipfs/QmYVUBLHXGmn71YfYqMFjxbcQtnyPiZwQoBshwwugCZHnv\"]},\"contracts/store/ILabelStore.sol\":{\"keccak256\":\"0xe6097169be43b592b895af7c64d362047f4619fa110ca79d4174167e364465b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://756113c8136ac761b2e3bdc0603f4a43f5a0dd92db4d031e019329de064373be\",\"dweb:/ipfs/QmRB61SofopsXD1bkRFapZmRnpissh6qrbJDHRJHtTcjhr\"]},\"contracts/store/IStoreFactory.sol\":{\"keccak256\":\"0x50eeb2c770feb6392bbfc449bb0c703d99cd440a5db6d0d82bedfdbe1cd3293b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a50699a47ca893f3aa9b13496f0a6e2201acbd3e7871b4579a25c7d4d773b44a\",\"dweb:/ipfs/QmXBMBzZhdv12obarQL6WLFzFxgnmXb8cEt4CHiMkUZTJd\"]},\"contracts/utils/DotnsConstants.sol\":{\"keccak256\":\"0x0336dfe0c896ce13bdce9f63238d344ac900a74fcbc5b0b061f9ab92799862dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5254d400120263b327c8bd58ed75275a98c4bf5c590090fbb10123beb0dc1298\",\"dweb:/ipfs/QmZoJtKyxdr2MH8ChBjkFjbxSk3HU2gukPo1S3fV9dMUwr\"]},\"contracts/utils/LabelUtils.sol\":{\"keccak256\":\"0x8c6acb887fe9784392da6107d728386452e8179c90436c880cf3d7889a376eb0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45db8cfb3b51bedda0dca11e82cc09618e0d60a939c8029ef8657fc8ba7b4f35\",\"dweb:/ipfs/QmZVFsbuh2baR5b7foXPQmqYdcQ2yVbc83pevGQBNbPy5F\"]},\"contracts/utils/StoreUtils.sol\":{\"keccak256\":\"0xbba43d74813e8af402c17b50253ac48b5e53fbf8769b4d450640596aeee9b584\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9d68a8712ab5f40f465d900cb96b83962d980fab055f1326cfda81d872796c\",\"dweb:/ipfs/QmSumakToXzU6QjVSpa96VGQqCm4QCZPDd1Z1wXnudNEb3\"]},\"contracts/utils/StringUtils.sol\":{\"keccak256\":\"0xd7a81598d662ccfcfe15cf9e7a854128fb42714a06cfdd7eef43a6986102ee2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://235ebf6c7b3ba60365a44c03849692ac0c082846716bb8cf97233b6f552208cc\",\"dweb:/ipfs/Qme6QfWvtGd8CvHu3apLAe8DxAnr9t8jNKn1A4vw9LUvBz\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed\",\"dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d\",\"dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e\",\"dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x96db1cd720d5381123c66113f06345e8c101180be02df17e5789440f6526ec9b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e728d30d1c92b4628be875374a4da395ab468859e68ed86b27023708b2d88a18\",\"dweb:/ipfs/QmQEXpkqWVQatvbwXAYadTGD3qs6KjvAiq5yx4xGdFFEbY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455\",\"dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812\",\"dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34\",\"dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x09ad04d9e2513a993bb05229a9b4afbac318ad9b2c365909d2e19d84dbf8bc58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b32511e1c8289873219c5983508e29b1b8cd6828fb71f1a201577b652d5edf4\",\"dweb:/ipfs/QmQNxLjoQkAZsy1vzN5683DHSbypMnRi1jh5ywAHnVkXew\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e\",\"dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e\",\"dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol\":{\"keccak256\":\"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435\",\"dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710\",\"dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d\"]},\"lib/openzeppelin-contracts/contracts/utils/Bytes.sol\":{\"keccak256\":\"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147\",\"dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol\":{\"keccak256\":\"0x5b4802a4352474792df3107e961d1cc593e47b820c14f69d3505cb28f5a6a583\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6f86fd01f829499fe0545ff5dda07d4521988e88bfe0bf801fc15650921ed56\",\"dweb:/ipfs/QmUUKu4ZDffHAmfkf3asuQfmLTyfpuy2Amdncc3SqfzKPG\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a\",\"dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c\",\"dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegistry"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"PopError"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"string","name":"baseName","type":"string","indexed":true}],"type":"event","name":"BaseNameReleased","anonymous":false},{"inputs":[{"internalType":"string","name":"baseName","type":"string","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint64","name":"expires","type":"uint64","indexed":false}],"type":"event","name":"BaseNameReserved","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"oldPrice","type":"uint256","indexed":false},{"internalType":"uint256","name":"newPrice","type":"uint256","indexed":false}],"type":"event","name":"StartingPriceUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_RESERVATION_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"pure","type":"function","name":"classifyName","outputs":[{"internalType":"enum IPopRules.PopStatus","name":"requirement","type":"uint8"},{"internalType":"string","name":"message","type":"string"}]},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"view","type":"function","name":"getBaseNameReservation","outputs":[{"internalType":"address","name":"reservationOwner","type":"address"},{"internalType":"uint64","name":"expiryTimestamp","type":"uint64"}]},{"inputs":[{"internalType":"uint256","name":"_startingPrice","type":"uint256"},{"internalType":"contract IDotnsProtocolRegistry","name":"registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"pure","type":"function","name":"isBaseName","outputs":[{"internalType":"bool","name":"isBase","type":"bool"}]},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"view","type":"function","name":"isBaseNameReserved","outputs":[{"internalType":"bool","name":"isReserved","type":"bool"},{"internalType":"address","name":"reservationOwner","type":"address"},{"internalType":"uint64","name":"expiryTimestamp","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"priceWithCheck","outputs":[{"internalType":"struct IPopRules.PriceWithMeta","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"enum IPopRules.PopStatus","name":"status","type":"uint8"},{"internalType":"enum IPopRules.PopStatus","name":"userStatus","type":"uint8"},{"internalType":"string","name":"message","type":"string"}]}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"priceWithoutCheck","outputs":[{"internalType":"struct IPopRules.PriceWithMeta","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"enum IPopRules.PopStatus","name":"status","type":"uint8"},{"internalType":"enum IPopRules.PopStatus","name":"userStatus","type":"uint8"},{"internalType":"string","name":"message","type":"string"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"protocolRegistry","outputs":[{"internalType":"contract IDotnsProtocolRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"reachFee","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"}]},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"releaseBaseName"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"baseName","type":"string"}],"stateMutability":"view","type":"function","name":"reservations","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"expires","type":"uint64"},{"internalType":"address","name":"controller","type":"address"}]},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"reserveBaseName"},{"inputs":[{"internalType":"string","name":"baseName","type":"string"},{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"reserveBaseNameForPop"},{"inputs":[],"stateMutability":"view","type":"function","name":"startingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"supported","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"newStartingPrice","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateStartingPrice"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"string","name":"versionString","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"classifyName(string)":{"details":"Pure; inputs are the label bytes only. Callers use the returned tier to decide which pricing and verification branch applies.","params":{"name":"The name label being evaluated."},"returns":{"message":"Explanation of the classification result.","requirement":"Required tier for registration."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getBaseNameReservation(string)":{"details":"Raw accessor: returns the stored slot regardless of expiry. Use {isBaseNameReserved} when live-window semantics are needed.","params":{"baseName":"The base label without trailing digits."},"returns":{"expiryTimestamp":"UNIX timestamp when the reservation expires.","reservationOwner":"The address assigned to the reservation."}},"initialize(uint256,address)":{"custom:reverts":"InvalidInitialization","params":{"_startingPrice":"Base price in wei for NoStatus users.","registry":"Protocol-level address registry used to resolve sibling contracts."}},"isBaseName(string)":{"details":"A base name has no trailing digits; lite-person labels always have at least two trailing digits, so the two spaces are disjoint.","params":{"name":"The label to check."},"returns":{"isBase":"True when the label has no trailing digits."}},"isBaseNameReserved(string)":{"details":"Applies the live-window predicate to the stored slot so an expired reservation reads as free.","params":{"baseName":"The base label without trailing digits."},"returns":{"expiryTimestamp":"UNIX timestamp when the reservation expires.","isReserved":"True if a live reservation is active.","reservationOwner":"The reservation holder (zero when not reserved)."}},"owner()":{"details":"Returns the address of the current owner."},"price(string)":{"details":"Pure length-based pricing; ignores PoP status and reservation state.","params":{"name":"Domain label to price."},"returns":{"_0":"Registration cost in wei."}},"priceWithCheck(string,address)":{"details":"Reverting pricing path used by the commit-reveal controller. Rejects governance-reserved names and base-name registrations held by another user. Price is a spam deterrent and is significant only for NoStatus users; verified users pay zero.","params":{"name":"Domain label.","userAddress":"Registering user for the given label."},"returns":{"metadata":"Price with PoP requirements and classification."}},"priceWithoutCheck(string,address)":{"details":"Non-reverting counterpart to `priceWithCheck`: surfaces the same fields, but reports a `Reserved` status through `metadata` instead of reverting when the base stem is held by another user. Used by front-ends that need to present a price and eligibility preview without forcing a transaction attempt. Governance-reserved names are not rejected here either; the caller decides what to do.","params":{"name":"Domain label.","userAddress":"Registering user for the given label."},"returns":{"metadata":"Price with PoP requirements and classification."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reachFee(string,address)":{"details":"Non-zero only when `account` cannot meet the label's required PoP tier; the value is the length-scaled list price. Acts as cross-payer friction at registration time and as the transfer-time floor consumed by `DotnsNameEscrow.chargeTransferFee`.","params":{"account":"Account whose verification reach is being measured.","name":"Domain label being acted on."}},"releaseBaseName(string)":{"details":"Callable by controllers in the registrar's `controllers` set. Live reservations may only be cleared by the same controller that wrote them; expired reservations may be cleared by any authorised controller. Used by the PoP controller when a reservation is claimed, relinquished, or a queue head promotion leaves the slot empty.","params":{"baseName":"The base label whose reservation should be cleared."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"reserveBaseName(string,address)":{"details":"Commit-reveal reservation path. Callable only by an authorised controller on the registrar. Reverts unless the label is classified as `PopLite`; no-ops when the slot is already live so concurrent registrations cannot stomp the original reserver.","params":{"baseName":"The base label with trailing digits removed.","user":"The address receiving reservation rights."}},"reserveBaseNameForPop(string,address)":{"details":"Gateway-driven reservation path used by the PoP controller. Callable by any controller in the registrar's `controllers` set. Does not apply the lite-format classification that `reserveBaseName` enforces; the caller supplies the bare stem directly. Reverts if the slot is already held by another user and still live so the caller's local bookkeeping and PopRules state stay in lockstep. If the slot is already live for the same user, refreshes expiry to `block.timestamp + MAX_RESERVATION_TIME`.","params":{"baseName":"The base label to reserve (no trailing digits).","user":"The address receiving reservation rights."}},"supportsInterface(bytes4)":{"details":"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"updateStartingPrice(uint256)":{"details":"Owner-only. The new value flows into `_priceValidatedName` on the next pricing read; no redeploy. Emits {StartingPriceUpdated}.","params":{"newStartingPrice":"New base price in wei."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"MAX_RESERVATION_TIME()":{"notice":"Maximum time a base name can be reserved."},"classifyName(string)":{"notice":"Classifies a name into a required PoP tier per DotNS naming rules."},"getBaseNameReservation(string)":{"notice":"Retrieves reservation information for a base name."},"initialize(uint256,address)":{"notice":"Initialises the oracle (public entry point)."},"isBaseName(string)":{"notice":"Returns whether `name` is a base name under PoP rules."},"isBaseNameReserved(string)":{"notice":"Indicates whether a base name is currently reserved."},"price(string)":{"notice":"Calculates registration cost for a label."},"priceWithCheck(string,address)":{"notice":"Calculates price with PoP classification and reservation enforcement."},"priceWithoutCheck(string,address)":{"notice":"Calculates price with PoP classification and reservation metadata, without reverting"},"protocolRegistry()":{"notice":"Protocol-level address registry for all DotNS contracts."},"reachFee(string,address)":{"notice":"Friction fee owed when `account` reaches into a label tier above its verification"},"releaseBaseName(string)":{"notice":"Clears a reservation for a base-name stem."},"reservations(string)":{"notice":"Active reservations keyed by digit-stripped base name."},"reserveBaseName(string,address)":{"notice":"Creates a reservation entry for the digit-stripped version of a name."},"reserveBaseNameForPop(string,address)":{"notice":"Writes or refreshes a reservation for a bare base-name stem."},"startingPrice()":{"notice":"Wei price for names with 9 characters and up."},"updateStartingPrice(uint256)":{"notice":"Updates the spam-deterrent starting price for NoStatus pricing."},"version()":{"notice":"Returns implementation version."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/pop/PopRules.sol":"PopRules"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/escrow/IDotnsNameEscrow.sol":{"keccak256":"0x6635523fe200a1244bf01aaf55a592700a4f4af0ebfb5fad7fb5bd58e8048855","urls":["bzz-raw://7999b1f1119b00095c11bb52d10033e9963a741eb942ae181321d6ef8bb5184b","dweb:/ipfs/QmZ5pWhRxidxMNnCLqzQyAGTVpjyu8mB5GCJ3SnivtGRpY"],"license":"MIT"},"contracts/external/personhood/IPersonhood.sol":{"keccak256":"0xea1aff2d5d7c5220b22c9e917ea404c875bff990129657462d7e9aa160b6af9e","urls":["bzz-raw://43e3363a16e781b16ebfc321060a1516444ba784c3aa848b527d6c5f9564da35","dweb:/ipfs/QmQ9zLQMehpubHDP6zBDuEvDF7K8hBKuu5X1gX9qJCsi83"],"license":"GPL-3.0-only"},"contracts/pop/IPopRules.sol":{"keccak256":"0x138186f031e701865eb19b89aebcd724114b25b32d486cee90488b9d1b9a2915","urls":["bzz-raw://b14c57d9bccd4194d5bb3e4baf282779650c08e109715bc4ce6c42b52d466886","dweb:/ipfs/QmVQeF353sS9ahjza9v46CBnwFkoD3wxGnj2cSJMa5RGG5"],"license":"MIT"},"contracts/pop/PopRules.sol":{"keccak256":"0xbc30f6b7b2bc57487b7b4fca17823a26428b494cd57f5bf6237cfc279a686d1e","urls":["bzz-raw://209e3af3f02454787f8c6d0cace67293448d0da6afd0a47f048b5279012df7b4","dweb:/ipfs/QmdUhQdwkNfEiRXzJGBCDX5aepRmYy8cLLJ3edcVCRfc8i"],"license":"MIT"},"contracts/registrars/DotnsRegistrar.sol":{"keccak256":"0x6819848d9defec02d3497629da938270d18e1c1f7e7178bf909393ae95225916","urls":["bzz-raw://da6fa64ce598f715ba4a6f7c21db88bbb70c0cde9e90dab244bdd176e2b244e4","dweb:/ipfs/QmQuizsK4RkDzknotuPoazu45mCoXFQgFkoCC1QxHSkn8e"],"license":"MIT"},"contracts/registrars/IDotnsController.sol":{"keccak256":"0x36304c2a145c90a6d07bb2630e9e599698325dfb01b4ec0f3c1dfb1853858844","urls":["bzz-raw://7b3098427beb68f49940a93d5feca7c1b5424ee99f9531616326439df81bf0cf","dweb:/ipfs/QmUdyDbSb2eDZyrwsg3pv31PyCe6a2VnjoamXFGr4DxvRu"],"license":"MIT"},"contracts/registrars/IDotnsRegistrar.sol":{"keccak256":"0x8676a5ffab195b378e9f483b05c8ea52fab07aa20141d1d78dc88c6c2c093a6e","urls":["bzz-raw://fd57503d29497559921fca75e636a6a579d6a5dc50099e8cd8eb35b59592eaf9","dweb:/ipfs/QmfDCwPkEkMn1FxMnekPeYrq4Q1SLpr9qWFWUSFcJpWMP9"],"license":"MIT"},"contracts/registry/IDotnsProtocolRegistry.sol":{"keccak256":"0xdc233ef72cd7eb07bf8631b4de779d2f79671b76051d1d0f81aeb5c86567269e","urls":["bzz-raw://81f992df80f7f53854ef309c5ed76de1180e10a3af66c86a901e46fa1a1aaae5","dweb:/ipfs/QmbL4WUsWrupbvrz8uKPhp7YEePzdE9z8GpZvrZ5DvTWws"],"license":"MIT"},"contracts/resolvers/IDotnsReverseResolver.sol":{"keccak256":"0xaba5d1260aef33c19489f2f641b6c0ef026d24c9095cf69667818c6a211826e8","urls":["bzz-raw://4d99905afa1cd71331cb4f602e0c9e0743a903ebc8e70657159af25c3503d0de","dweb:/ipfs/QmRWpZu7TsJ6SVcsDomaK5CGrQSPhYYWgkHayxyuBqQqie"],"license":"MIT"},"contracts/store/IDotnsStore.sol":{"keccak256":"0xc477b3a4354a66aa9565b7e045504127389956eb4ba0b9c981631f276b598cca","urls":["bzz-raw://690a2b096d0779395b22062839e2d37338c3db03c248c05779dbf2ffffeb0c71","dweb:/ipfs/QmYVUBLHXGmn71YfYqMFjxbcQtnyPiZwQoBshwwugCZHnv"],"license":"MIT"},"contracts/store/ILabelStore.sol":{"keccak256":"0xe6097169be43b592b895af7c64d362047f4619fa110ca79d4174167e364465b8","urls":["bzz-raw://756113c8136ac761b2e3bdc0603f4a43f5a0dd92db4d031e019329de064373be","dweb:/ipfs/QmRB61SofopsXD1bkRFapZmRnpissh6qrbJDHRJHtTcjhr"],"license":"MIT"},"contracts/store/IStoreFactory.sol":{"keccak256":"0x50eeb2c770feb6392bbfc449bb0c703d99cd440a5db6d0d82bedfdbe1cd3293b","urls":["bzz-raw://a50699a47ca893f3aa9b13496f0a6e2201acbd3e7871b4579a25c7d4d773b44a","dweb:/ipfs/QmXBMBzZhdv12obarQL6WLFzFxgnmXb8cEt4CHiMkUZTJd"],"license":"MIT"},"contracts/utils/DotnsConstants.sol":{"keccak256":"0x0336dfe0c896ce13bdce9f63238d344ac900a74fcbc5b0b061f9ab92799862dc","urls":["bzz-raw://5254d400120263b327c8bd58ed75275a98c4bf5c590090fbb10123beb0dc1298","dweb:/ipfs/QmZoJtKyxdr2MH8ChBjkFjbxSk3HU2gukPo1S3fV9dMUwr"],"license":"MIT"},"contracts/utils/LabelUtils.sol":{"keccak256":"0x8c6acb887fe9784392da6107d728386452e8179c90436c880cf3d7889a376eb0","urls":["bzz-raw://45db8cfb3b51bedda0dca11e82cc09618e0d60a939c8029ef8657fc8ba7b4f35","dweb:/ipfs/QmZVFsbuh2baR5b7foXPQmqYdcQ2yVbc83pevGQBNbPy5F"],"license":"MIT"},"contracts/utils/StoreUtils.sol":{"keccak256":"0xbba43d74813e8af402c17b50253ac48b5e53fbf8769b4d450640596aeee9b584","urls":["bzz-raw://3d9d68a8712ab5f40f465d900cb96b83962d980fab055f1326cfda81d872796c","dweb:/ipfs/QmSumakToXzU6QjVSpa96VGQqCm4QCZPDd1Z1wXnudNEb3"],"license":"MIT"},"contracts/utils/StringUtils.sol":{"keccak256":"0xd7a81598d662ccfcfe15cf9e7a854128fb42714a06cfdd7eef43a6986102ee2e","urls":["bzz-raw://235ebf6c7b3ba60365a44c03849692ac0c082846716bb8cf97233b6f552208cc","dweb:/ipfs/Qme6QfWvtGd8CvHu3apLAe8DxAnr9t8jNKn1A4vw9LUvBz"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x85c3b9bac35a90dce9ed9b31532c3739cae432359d8d7ff59cb6712f21c7ed14","urls":["bzz-raw://a084d32ad4ad5b1d4494124d7695334dbeff81c2d1846a01ef1215153dd38eed","dweb:/ipfs/QmbzDrfeogDd3n65mADjLuy97oAMgh2CtiUxKKEpM3WB8b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x30d125b8417684dbfea3e8d57284b353a86b22077237b4aaf098c0b54b153e16","urls":["bzz-raw://2813775a6326190e75dfa9005c1abbdb1e541c195c0bf5656dd4199e8c66fd8d","dweb:/ipfs/QmYDKANBezQXNrEDyJ69RVXkgypW1hWj7MAvjfdNHTZY8L"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x4918e374e9ce84e9b196486bafbd46851d5e72ab315e31f0b1d7c443dcfea5bf","urls":["bzz-raw://2ced247afc54a93a13922ebbd63add61130abe483ab5b5b78e7e991d564d150e","dweb:/ipfs/QmTfxjcTgfekiguegjvYMyfqhyRNffui17f8xi86BCZNVt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x96db1cd720d5381123c66113f06345e8c101180be02df17e5789440f6526ec9b","urls":["bzz-raw://e728d30d1c92b4628be875374a4da395ab468859e68ed86b27023708b2d88a18","dweb:/ipfs/QmQEXpkqWVQatvbwXAYadTGD3qs6KjvAiq5yx4xGdFFEbY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xad316bdc3ee64a0e29773256245045dc57b92660799ff14f668f7c0da9456a9d","urls":["bzz-raw://66463434d266816fca2a3a2734ceee88544e61b7cc3899c50333b46e8e771455","dweb:/ipfs/QmPYCzHjki1HQLvBub3uUqoUKGrwdgR3xP9Zpya14YTdXS"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x16b88aca1f1c3aa38783416d86207ce6fe574fcd1993dfe54403b5c8b6c74224","urls":["bzz-raw://29f3c5c687fe0d87742b013872f495e67656910530c916a69873860dc8fea812","dweb:/ipfs/QmbspfQXmbhCANqqiunUFm9fiVVQwPet2YKQoJ58km442Y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x1a26353563a2c63b4120ea0b94727253eeff84fe2241d42c1452308b9080e66a","urls":["bzz-raw://49a95e36d267828b4357186a79917002d616d8634e25d1f9818e2354cd2e7d34","dweb:/ipfs/QmWDkqE4KkyLAS2UkLsRgXE1FGB1qfEgBC3zMXBVsVWfdk"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x09ad04d9e2513a993bb05229a9b4afbac318ad9b2c365909d2e19d84dbf8bc58","urls":["bzz-raw://1b32511e1c8289873219c5983508e29b1b8cd6828fb71f1a201577b652d5edf4","dweb:/ipfs/QmQNxLjoQkAZsy1vzN5683DHSbypMnRi1jh5ywAHnVkXew"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x88cd5e3bee2e8c36b8d9058fbcaa81ad5704281b25634122234b55ea853d8055","urls":["bzz-raw://8dc7e7ab5b8ea36c15027ab04221b05d1c970f47a53e9fd47ead8ca665d49c7e","dweb:/ipfs/Qmeeph7fsDyfRr8vb2L8KcDEmKPb224TAayMvgqgGAnqpL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0xf46268c37522320bb2119a5a394bc5c739a95c0c574c8d08e8c643f4d06e5c76","urls":["bzz-raw://517e4b295f35b9947c72ad7379a6089439ece7bb6f4a2ea0a159da13046c039e","dweb:/ipfs/QmZXzkSfLUbvujig3zVbpDHykpHhqLpvQtdiN3B5j4TA3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol":{"keccak256":"0xc7efbc23214ad7dced8bf2249460f4bda114d57f6a0079f84040654280f455bd","urls":["bzz-raw://1f5bd44efca8c8c0d74439e7b808d1f9c4af1df78f91fef8e8bbca8104645435","dweb:/ipfs/Qmb42XSd8MKsEitp42sZkSFGqDRigk6QgGXtiJyJqUZJJ6"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x0fa9e0d3a859900b5a46f70a03c73adf259603d5e05027a37fe0b45529d85346","urls":["bzz-raw://c2add4da0240c9f2ce47649c8bb6b11b40e98cf6f88b8bdc76b2704e89391710","dweb:/ipfs/QmNQTwF2uVzu4CRtNxr8bxyP9XuW6VsZuo2Nr4KR2bZr3d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Bytes.sol":{"keccak256":"0x8140d608316521b1fd71167c3b708ebb8659da070723fc8807609553b296ee33","urls":["bzz-raw://a7bf7db66869ba1e945a0390b85da2f6afc7e42a4735ca918d0d56ac90c50147","dweb:/ipfs/QmRmNyhpBpgzSdQqLtrQCYE7H7eLnVVxh2Yy4YMrySR8AR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/LowLevelCall.sol":{"keccak256":"0x5b4802a4352474792df3107e961d1cc593e47b820c14f69d3505cb28f5a6a583","urls":["bzz-raw://a6f86fd01f829499fe0545ff5dda07d4521988e88bfe0bf801fc15650921ed56","dweb:/ipfs/QmUUKu4ZDffHAmfkf3asuQfmLTyfpuy2Amdncc3SqfzKPG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x36d1750bf1aa5fee9c52adb2f7857ab652daca722fc05dff533b364f67a1139a","urls":["bzz-raw://2e5e7052539b7849d02f3ce25acc1dce29373c11cfae9f0bc918c54b780c549a","dweb:/ipfs/QmRGE32xNkMTo6i4pHHMxjpiu77yPwnTA25SFngw2NXJys"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x09e3f1c72d4c5cbe8e2644ab7313f8f7177533ae2f4c24cdcbbeaf520a73734c","urls":["bzz-raw://93208401215d539fa2d81626b207c1f611def7883d0e447b3b5969ebaa7b3c2c","dweb:/ipfs/QmXPxDnQPx8LAweX5ZJqEcwkvs59kP4c64VVDG1Jjq1mef"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":2235,"contract":"contracts/pop/PopRules.sol:PopRules","label":"startingPrice","offset":0,"slot":"0","type":"t_uint256"},{"astId":2241,"contract":"contracts/pop/PopRules.sol:PopRules","label":"reservations","offset":0,"slot":"1","type":"t_mapping(t_string_memory_ptr,t_struct(Reservation)2080_storage)"},{"astId":2249,"contract":"contracts/pop/PopRules.sol:PopRules","label":"protocolRegistry","offset":0,"slot":"2","type":"t_contract(IDotnsProtocolRegistry)8949"},{"astId":2253,"contract":"contracts/pop/PopRules.sol:PopRules","label":"__gap","offset":0,"slot":"3","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_contract(IDotnsProtocolRegistry)8949":{"encoding":"inplace","label":"contract IDotnsProtocolRegistry","numberOfBytes":"20"},"t_mapping(t_string_memory_ptr,t_struct(Reservation)2080_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct IPopRules.Reservation)","numberOfBytes":"32","value":"t_struct(Reservation)2080_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Reservation)2080_storage":{"encoding":"inplace","label":"struct IPopRules.Reservation","numberOfBytes":"64","members":[{"astId":2075,"contract":"contracts/pop/PopRules.sol:PopRules","label":"owner","offset":0,"slot":"0","type":"t_address"},{"astId":2077,"contract":"contracts/pop/PopRules.sol:PopRules","label":"expires","offset":20,"slot":"0","type":"t_uint64"},{"astId":2079,"contract":"contracts/pop/PopRules.sol:PopRules","label":"controller","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint64":{"encoding":"inplace","label":"uint64","numberOfBytes":"8"}}},"ast":{"absolutePath":"contracts/pop/PopRules.sol","id":3421,"exportedSymbols":{"DotnsConstants":[12398],"DotnsRegistrar":[6098],"ERC165Upgradeable":[54754],"IDotnsController":[7245],"IDotnsProtocolRegistry":[8949],"IPersonhood":[2017],"IPopRules":[2195],"Initializable":[56129],"OwnableUpgradeable":[53580],"PopRules":[3420],"StringUtils":[13173],"UUPSUpgradeable":[56295]},"nodeType":"SourceUnit","src":"32:17277:7","nodes":[{"id":2197,"nodeType":"PragmaDirective","src":"32:24:7","nodes":[],"literals":["solidity","^","0.8",".34"]},{"id":2199,"nodeType":"ImportDirective","src":"58:96:7","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":53585,"symbolAliases":[{"foreign":{"id":2198,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56129,"src":"66:13:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2201,"nodeType":"ImportDirective","src":"155:100:7","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":53589,"symbolAliases":[{"foreign":{"id":2200,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56295,"src":"163:15:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2203,"nodeType":"ImportDirective","src":"256:107:7","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":53581,"symbolAliases":[{"foreign":{"id":2202,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53580,"src":"269:18:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2205,"nodeType":"ImportDirective","src":"364:118:7","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":54755,"symbolAliases":[{"foreign":{"id":2204,"name":"ERC165Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54754,"src":"377:17:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2207,"nodeType":"ImportDirective","src":"483:53:7","nodes":[],"absolutePath":"contracts/utils/StringUtils.sol","file":"../utils/StringUtils.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":13174,"symbolAliases":[{"foreign":{"id":2206,"name":"StringUtils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13173,"src":"491:11:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2209,"nodeType":"ImportDirective","src":"537:42:7","nodes":[],"absolutePath":"contracts/pop/IPopRules.sol","file":"./IPopRules.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":2196,"symbolAliases":[{"foreign":{"id":2208,"name":"IPopRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"545:9:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2211,"nodeType":"ImportDirective","src":"580:78:7","nodes":[],"absolutePath":"contracts/registry/IDotnsProtocolRegistry.sol","file":"../registry/IDotnsProtocolRegistry.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":8950,"symbolAliases":[{"foreign":{"id":2210,"name":"IDotnsProtocolRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8949,"src":"588:22:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2213,"nodeType":"ImportDirective","src":"659:68:7","nodes":[],"absolutePath":"contracts/registrars/IDotnsController.sol","file":"../registrars/IDotnsController.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":7246,"symbolAliases":[{"foreign":{"id":2212,"name":"IDotnsController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7245,"src":"667:16:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2215,"nodeType":"ImportDirective","src":"728:64:7","nodes":[],"absolutePath":"contracts/registrars/DotnsRegistrar.sol","file":"../registrars/DotnsRegistrar.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":6099,"symbolAliases":[{"foreign":{"id":2214,"name":"DotnsRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"736:14:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2217,"nodeType":"ImportDirective","src":"793:59:7","nodes":[],"absolutePath":"contracts/utils/DotnsConstants.sol","file":"../utils/DotnsConstants.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":12399,"symbolAliases":[{"foreign":{"id":2216,"name":"DotnsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"801:14:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2219,"nodeType":"ImportDirective","src":"853:67:7","nodes":[],"absolutePath":"contracts/external/personhood/IPersonhood.sol","file":"../external/personhood/IPersonhood.sol","nameLocation":"-1:-1:-1","scope":3421,"sourceUnit":2018,"symbolAliases":[{"foreign":{"id":2218,"name":"IPersonhood","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"861:11:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3420,"nodeType":"ContractDefinition","src":"1077:16231:7","nodes":[{"id":2232,"nodeType":"UsingForDirective","src":"1205:24:7","nodes":[],"global":false,"libraryName":{"id":2231,"name":"StringUtils","nameLocations":["1211:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":13173,"src":"1211:11:7"}},{"id":2235,"nodeType":"VariableDeclaration","src":"1297:28:7","nodes":[],"constant":false,"documentation":{"id":2233,"nodeType":"StructuredDocumentation","src":"1235:57:7","text":"@notice Wei price for names with 9 characters and up."},"functionSelector":"d6fbf202","mutability":"mutable","name":"startingPrice","nameLocation":"1312:13:7","scope":3420,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2234,"name":"uint256","nodeType":"ElementaryTypeName","src":"1297:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":2241,"nodeType":"VariableDeclaration","src":"1403:71:7","nodes":[],"constant":false,"documentation":{"id":2236,"nodeType":"StructuredDocumentation","src":"1332:66:7","text":"@notice Active reservations keyed by digit-stripped base name."},"functionSelector":"c5c95048","mutability":"mutable","name":"reservations","nameLocation":"1462:12:7","scope":3420,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string => struct IPopRules.Reservation)"},"typeName":{"id":2240,"keyName":"baseName","keyNameLocation":"1418:8:7","keyType":{"id":2237,"name":"string","nodeType":"ElementaryTypeName","src":"1411:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1403:51:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string => struct IPopRules.Reservation)"},"valueName":"reservation","valueNameLocation":"1442:11:7","valueType":{"id":2239,"nodeType":"UserDefinedTypeName","pathNode":{"id":2238,"name":"Reservation","nameLocations":["1430:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"1430:11:7"},"referencedDeclaration":2080,"src":"1430:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}}},"visibility":"public"},{"id":2245,"nodeType":"VariableDeclaration","src":"1539:55:7","nodes":[],"constant":true,"documentation":{"id":2242,"nodeType":"StructuredDocumentation","src":"1481:53:7","text":"@notice Maximum time a base name can be reserved."},"functionSelector":"68e344e9","mutability":"constant","name":"MAX_RESERVATION_TIME","nameLocation":"1563:20:7","scope":3420,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2243,"name":"uint256","nodeType":"ElementaryTypeName","src":"1539:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132","id":2244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1586:8:7","subdenomination":"weeks","typeDescriptions":{"typeIdentifier":"t_rational_7257600_by_1","typeString":"int_const 7257600"},"value":"12"},"visibility":"public"},{"id":2249,"nodeType":"VariableDeclaration","src":"1674:46:7","nodes":[],"constant":false,"documentation":{"id":2246,"nodeType":"StructuredDocumentation","src":"1601:68:7","text":"@notice Protocol-level address registry for all DotNS contracts."},"functionSelector":"7656419f","mutability":"mutable","name":"protocolRegistry","nameLocation":"1704:16:7","scope":3420,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"},"typeName":{"id":2248,"nodeType":"UserDefinedTypeName","pathNode":{"id":2247,"name":"IDotnsProtocolRegistry","nameLocations":["1674:22:7"],"nodeType":"IdentifierPath","referencedDeclaration":8949,"src":"1674:22:7"},"referencedDeclaration":8949,"src":"1674:22:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"visibility":"public"},{"id":2253,"nodeType":"VariableDeclaration","src":"1785:25:7","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"1805:5:7","scope":3420,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":2250,"name":"uint256","nodeType":"ElementaryTypeName","src":"1785:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2252,"length":{"hexValue":"3530","id":2251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1793:2:7","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1785:11:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"},{"id":2261,"nodeType":"ModifierDefinition","src":"1891:67:7","nodes":[],"body":{"id":2260,"nodeType":"Block","src":"1915:43:7","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2256,"name":"_onlyRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3308,"src":"1925:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":2257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1925:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2258,"nodeType":"ExpressionStatement","src":"1925:15:7"},{"id":2259,"nodeType":"PlaceholderStatement","src":"1950:1:7"}]},"documentation":{"id":2254,"nodeType":"StructuredDocumentation","src":"1817:69:7","text":"@notice Restricts function to any registry-authorised controller."},"name":"onlyRegistry","nameLocation":"1900:12:7","parameters":{"id":2255,"nodeType":"ParameterList","parameters":[],"src":"1912:2:7"},"virtual":false,"visibility":"internal"},{"id":2269,"nodeType":"FunctionDefinition","src":"2017:53:7","nodes":[],"body":{"id":2268,"nodeType":"Block","src":"2031:39:7","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2265,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56083,"src":"2041:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2041:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2267,"nodeType":"ExpressionStatement","src":"2041:22:7"}]},"documentation":{"id":2262,"nodeType":"StructuredDocumentation","src":"1964:48:7","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":2263,"nodeType":"ParameterList","parameters":[],"src":"2028:2:7"},"returnParameters":{"id":2264,"nodeType":"ParameterList","parameters":[],"src":"2031:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":2297,"nodeType":"FunctionDefinition","src":"2299:298:7","nodes":[],"body":{"id":2296,"nodeType":"Block","src":"2447:150:7","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":2281,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2472:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2476:6:7","memberName":"sender","nodeType":"MemberAccess","src":"2472:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2280,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53440,"src":"2457:14:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":2283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2284,"nodeType":"ExpressionStatement","src":"2457:26:7"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2285,"name":"__ERC165_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54731,"src":"2493:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":2286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2493:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2287,"nodeType":"ExpressionStatement","src":"2493:15:7"},{"expression":{"arguments":[{"id":2289,"name":"_startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2272,"src":"2538:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2288,"name":"updateStartingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2342,"src":"2518:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":2290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2518:35:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2291,"nodeType":"ExpressionStatement","src":"2518:35:7"},{"expression":{"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2292,"name":"protocolRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2249,"src":"2563:16:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2293,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2275,"src":"2582:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"src":"2563:27:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"id":2295,"nodeType":"ExpressionStatement","src":"2563:27:7"}]},"documentation":{"id":2270,"nodeType":"StructuredDocumentation","src":"2076:218:7","text":"@notice Initialises the oracle with pricing parameters.\n @param _startingPrice Base price in wei for NoStatus users.\n @param registry Protocol-level address registry used to resolve sibling contracts."},"implemented":true,"kind":"function","modifiers":[{"id":2278,"kind":"modifierInvocation","modifierName":{"id":2277,"name":"onlyInitializing","nameLocations":["2426:16:7"],"nodeType":"IdentifierPath","referencedDeclaration":56024,"src":"2426:16:7"},"nodeType":"ModifierInvocation","src":"2426:16:7"}],"name":"_popRulesInit","nameLocation":"2308:13:7","parameters":{"id":2276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2272,"mutability":"mutable","name":"_startingPrice","nameLocation":"2339:14:7","nodeType":"VariableDeclaration","scope":2297,"src":"2331:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2271,"name":"uint256","nodeType":"ElementaryTypeName","src":"2331:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2275,"mutability":"mutable","name":"registry","nameLocation":"2386:8:7","nodeType":"VariableDeclaration","scope":2297,"src":"2363:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"},"typeName":{"id":2274,"nodeType":"UserDefinedTypeName","pathNode":{"id":2273,"name":"IDotnsProtocolRegistry","nameLocations":["2363:22:7"],"nodeType":"IdentifierPath","referencedDeclaration":8949,"src":"2363:22:7"},"referencedDeclaration":8949,"src":"2363:22:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"visibility":"internal"}],"src":"2321:79:7"},"returnParameters":{"id":2279,"nodeType":"ParameterList","parameters":[],"src":"2447:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2314,"nodeType":"FunctionDefinition","src":"2869:194:7","nodes":[],"body":{"id":2313,"nodeType":"Block","src":"3007:56:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2309,"name":"_startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2300,"src":"3031:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2310,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2303,"src":"3047:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}],"id":2308,"name":"_popRulesInit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2297,"src":"3017:13:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_contract$_IDotnsProtocolRegistry_$8949_$returns$__$","typeString":"function (uint256,contract IDotnsProtocolRegistry)"}},"id":2311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3017:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2312,"nodeType":"ExpressionStatement","src":"3017:39:7"}]},"documentation":{"id":2298,"nodeType":"StructuredDocumentation","src":"2603:261:7","text":"@notice Initialises the oracle (public entry point).\n @param _startingPrice Base price in wei for NoStatus users.\n @param registry Protocol-level address registry used to resolve sibling contracts.\n @custom:reverts InvalidInitialization"},"functionSelector":"da35a26f","implemented":true,"kind":"function","modifiers":[{"id":2306,"kind":"modifierInvocation","modifierName":{"id":2305,"name":"initializer","nameLocations":["2991:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":55969,"src":"2991:11:7"},"nodeType":"ModifierInvocation","src":"2991:11:7"}],"name":"initialize","nameLocation":"2878:10:7","parameters":{"id":2304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2300,"mutability":"mutable","name":"_startingPrice","nameLocation":"2906:14:7","nodeType":"VariableDeclaration","scope":2314,"src":"2898:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2299,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2303,"mutability":"mutable","name":"registry","nameLocation":"2953:8:7","nodeType":"VariableDeclaration","scope":2314,"src":"2930:31:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"},"typeName":{"id":2302,"nodeType":"UserDefinedTypeName","pathNode":{"id":2301,"name":"IDotnsProtocolRegistry","nameLocations":["2930:22:7"],"nodeType":"IdentifierPath","referencedDeclaration":8949,"src":"2930:22:7"},"referencedDeclaration":8949,"src":"2930:22:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"visibility":"internal"}],"src":"2888:79:7"},"returnParameters":{"id":2307,"nodeType":"ParameterList","parameters":[],"src":"3007:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":2342,"nodeType":"FunctionDefinition","src":"3099:279:7","nodes":[],"body":{"id":2341,"nodeType":"Block","src":"3180:198:7","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2324,"name":"newStartingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3198:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3217:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3198:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"5072696365206d7573742062652067726561746572207468616e2030","id":2328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3229:30:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_f496d2a6b8c6dfd2fdeb51133639f7cbcc6985234f7207231dd11f4a16998dde","typeString":"literal_string \"Price must be greater than 0\""},"value":"Price must be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f496d2a6b8c6dfd2fdeb51133639f7cbcc6985234f7207231dd11f4a16998dde","typeString":"literal_string \"Price must be greater than 0\""}],"id":2327,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"3220:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":2329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":2323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3190:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3190:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2331,"nodeType":"ExpressionStatement","src":"3190:71:7"},{"eventCall":{"arguments":[{"id":2333,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"3297:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2334,"name":"newStartingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3312:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2332,"name":"StartingPriceUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2052,"src":"3276:20:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":2335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3276:53:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2336,"nodeType":"EmitStatement","src":"3271:58:7"},{"expression":{"id":2339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2337,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"3339:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2338,"name":"newStartingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2317,"src":"3355:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3339:32:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2340,"nodeType":"ExpressionStatement","src":"3339:32:7"}]},"baseFunctions":[2097],"documentation":{"id":2315,"nodeType":"StructuredDocumentation","src":"3069:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"f6d3dec2","implemented":true,"kind":"function","modifiers":[{"id":2321,"kind":"modifierInvocation","modifierName":{"id":2320,"name":"onlyOwner","nameLocations":["3170:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":53475,"src":"3170:9:7"},"nodeType":"ModifierInvocation","src":"3170:9:7"}],"name":"updateStartingPrice","nameLocation":"3108:19:7","overrides":{"id":2319,"nodeType":"OverrideSpecifier","overrides":[],"src":"3161:8:7"},"parameters":{"id":2318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2317,"mutability":"mutable","name":"newStartingPrice","nameLocation":"3136:16:7","nodeType":"VariableDeclaration","scope":2342,"src":"3128:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2316,"name":"uint256","nodeType":"ElementaryTypeName","src":"3128:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3127:26:7"},"returnParameters":{"id":2322,"nodeType":"ParameterList","parameters":[],"src":"3180:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":2363,"nodeType":"FunctionDefinition","src":"3414:246:7","nodes":[],"body":{"id":2362,"nodeType":"Block","src":"3570:90:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2355,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"3603:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2354,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"3580:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3580:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2357,"nodeType":"ExpressionStatement","src":"3580:28:7"},{"expression":{"arguments":[{"id":2359,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"3648:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2358,"name":"_classifyValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"3625:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":2360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3625:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"functionReturnParameters":2353,"id":2361,"nodeType":"Return","src":"3618:35:7"}]},"baseFunctions":[2091],"documentation":{"id":2343,"nodeType":"StructuredDocumentation","src":"3384:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"3017fa33","implemented":true,"kind":"function","modifiers":[],"name":"classifyName","nameLocation":"3423:12:7","overrides":{"id":2347,"nodeType":"OverrideSpecifier","overrides":[],"src":"3494:8:7"},"parameters":{"id":2346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2345,"mutability":"mutable","name":"name","nameLocation":"3452:4:7","nodeType":"VariableDeclaration","scope":2363,"src":"3436:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2344,"name":"string","nodeType":"ElementaryTypeName","src":"3436:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3435:22:7"},"returnParameters":{"id":2353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2350,"mutability":"mutable","name":"requirement","nameLocation":"3530:11:7","nodeType":"VariableDeclaration","scope":2363,"src":"3520:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2349,"nodeType":"UserDefinedTypeName","pathNode":{"id":2348,"name":"PopStatus","nameLocations":["3520:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"3520:9:7"},"referencedDeclaration":2036,"src":"3520:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":2352,"mutability":"mutable","name":"message","nameLocation":"3557:7:7","nodeType":"VariableDeclaration","scope":2363,"src":"3543:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2351,"name":"string","nodeType":"ElementaryTypeName","src":"3543:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3519:46:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":2442,"nodeType":"FunctionDefinition","src":"3696:1279:7","nodes":[],"body":{"id":2441,"nodeType":"Block","src":"3845:1130:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2375,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"3878:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2374,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"3855:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2377,"nodeType":"ExpressionStatement","src":"3855:28:7"},{"assignments":[2380,null],"declarations":[{"constant":false,"id":2380,"mutability":"mutable","name":"requiredStatus","nameLocation":"3905:14:7","nodeType":"VariableDeclaration","scope":2441,"src":"3895:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2379,"nodeType":"UserDefinedTypeName","pathNode":{"id":2378,"name":"PopStatus","nameLocations":["3895:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"3895:9:7"},"referencedDeclaration":2036,"src":"3895:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},null],"id":2384,"initialValue":{"arguments":[{"id":2382,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"3947:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2381,"name":"_classifyValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"3924:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3924:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"3894:58:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2386,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"3983:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2387,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"4001:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4011:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"4001:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"3983:35:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"42617365207265736572766174696f6e2072657175697265732061206c6974652d656c696769626c65206e616d65","id":2391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4041:48:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7191ec14fb29d6cbf8d7745d3989620c29418d9b4a8e8dfed3f3a2e83cf3d9b","typeString":"literal_string \"Base reservation requires a lite-eligible name\""},"value":"Base reservation requires a lite-eligible name"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7191ec14fb29d6cbf8d7745d3989620c29418d9b4a8e8dfed3f3a2e83cf3d9b","typeString":"literal_string \"Base reservation requires a lite-eligible name\""}],"id":2390,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"4032:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":2392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":2385,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3962:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":2393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3962:138:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2394,"nodeType":"ExpressionStatement","src":"3962:138:7"},{"assignments":[2396],"declarations":[{"constant":false,"id":2396,"mutability":"mutable","name":"strippedBase","nameLocation":"4125:12:7","nodeType":"VariableDeclaration","scope":2441,"src":"4111:26:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2395,"name":"string","nodeType":"ElementaryTypeName","src":"4111:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2400,"initialValue":{"arguments":[{"id":2398,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"4153:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2397,"name":"_stripDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3133,"src":"4140:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (string memory)"}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4140:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4111:47:7"},{"assignments":[2403],"declarations":[{"constant":false,"id":2403,"mutability":"mutable","name":"existingReservation","nameLocation":"4188:19:7","nodeType":"VariableDeclaration","scope":2441,"src":"4169:38:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":2402,"nodeType":"UserDefinedTypeName","pathNode":{"id":2401,"name":"Reservation","nameLocations":["4169:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"4169:11:7"},"referencedDeclaration":2080,"src":"4169:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":2407,"initialValue":{"baseExpression":{"id":2404,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"4210:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":2406,"indexExpression":{"id":2405,"name":"strippedBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4223:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4210:26:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4169:67:7"},{"condition":{"id":2411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4250:29:7","subExpression":{"arguments":[{"id":2409,"name":"existingReservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"4259:19:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}],"id":2408,"name":"_isLive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"4251:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Reservation_$2080_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IPopRules.Reservation memory) view returns (bool)"}},"id":2410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4251:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2440,"nodeType":"IfStatement","src":"4246:723:7","trueBody":{"id":2439,"nodeType":"Block","src":"4281:688:7","statements":[{"assignments":[2413],"declarations":[{"constant":false,"id":2413,"mutability":"mutable","name":"expiryTime","nameLocation":"4688:10:7","nodeType":"VariableDeclaration","scope":2439,"src":"4681:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2412,"name":"uint64","nodeType":"ElementaryTypeName","src":"4681:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":2421,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2416,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4708:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4714:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"4708:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":2418,"name":"MAX_RESERVATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"4726:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4708:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4701:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":2414,"name":"uint64","nodeType":"ElementaryTypeName","src":"4701:6:7","typeDescriptions":{}}},"id":2420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4681:66:7"},{"expression":{"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2422,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"4761:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":2424,"indexExpression":{"id":2423,"name":"strippedBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4774:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4761:26:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2426,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"4826:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2427,"name":"expiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2413,"src":"4848:10:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":2428,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4872:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4876:6:7","memberName":"sender","nodeType":"MemberAccess","src":"4872:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2425,"name":"Reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"4806:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Reservation_$2080_storage_ptr_$","typeString":"type(struct IPopRules.Reservation storage pointer)"}},"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4819:5:7","4839:7:7","4860:10:7"],"names":["owner","expires","controller"],"nodeType":"FunctionCall","src":"4806:78:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"src":"4761:123:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"id":2432,"nodeType":"ExpressionStatement","src":"4761:123:7"},{"eventCall":{"arguments":[{"id":2434,"name":"strippedBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2396,"src":"4920:12:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2435,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2368,"src":"4934:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2436,"name":"expiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2413,"src":"4947:10:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":2433,"name":"BaseNameReserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2045,"src":"4903:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint64_$returns$__$","typeString":"function (string memory,address,uint64)"}},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4903:55:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2438,"nodeType":"EmitStatement","src":"4898:60:7"}]}}]},"baseFunctions":[2105],"documentation":{"id":2364,"nodeType":"StructuredDocumentation","src":"3666:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"35696fa7","implemented":true,"kind":"function","modifiers":[{"id":2372,"kind":"modifierInvocation","modifierName":{"id":2371,"name":"onlyRegistry","nameLocations":["3828:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":2261,"src":"3828:12:7"},"nodeType":"ModifierInvocation","src":"3828:12:7"}],"name":"reserveBaseName","nameLocation":"3705:15:7","overrides":{"id":2370,"nodeType":"OverrideSpecifier","overrides":[],"src":"3811:8:7"},"parameters":{"id":2369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2366,"mutability":"mutable","name":"name","nameLocation":"3746:4:7","nodeType":"VariableDeclaration","scope":2442,"src":"3730:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2365,"name":"string","nodeType":"ElementaryTypeName","src":"3730:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2368,"mutability":"mutable","name":"userAddress","nameLocation":"3768:11:7","nodeType":"VariableDeclaration","scope":2442,"src":"3760:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2367,"name":"address","nodeType":"ElementaryTypeName","src":"3760:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3720:65:7"},"returnParameters":{"id":2373,"nodeType":"ParameterList","parameters":[],"src":"3845:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2466,"nodeType":"FunctionDefinition","src":"5011:223:7","nodes":[],"body":{"id":2465,"nodeType":"Block","src":"5100:134:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2452,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2445,"src":"5133:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2451,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"5110:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2454,"nodeType":"ExpressionStatement","src":"5110:32:7"},{"assignments":[2456],"declarations":[{"constant":false,"id":2456,"mutability":"mutable","name":"digits","nameLocation":"5160:6:7","nodeType":"VariableDeclaration","scope":2465,"src":"5152:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2455,"name":"uint256","nodeType":"ElementaryTypeName","src":"5152:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2460,"initialValue":{"arguments":[{"id":2458,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2445,"src":"5190:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2457,"name":"_countTrailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"5169:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) pure returns (uint256)"}},"id":2459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5169:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5152:47:7"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2461,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2456,"src":"5216:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5226:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5216:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2450,"id":2464,"nodeType":"Return","src":"5209:18:7"}]},"baseFunctions":[2186],"documentation":{"id":2443,"nodeType":"StructuredDocumentation","src":"4981:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"b4956ade","implemented":true,"kind":"function","modifiers":[],"name":"isBaseName","nameLocation":"5020:10:7","overrides":{"id":2447,"nodeType":"OverrideSpecifier","overrides":[],"src":"5069:8:7"},"parameters":{"id":2446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2445,"mutability":"mutable","name":"baseName","nameLocation":"5047:8:7","nodeType":"VariableDeclaration","scope":2466,"src":"5031:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2444,"name":"string","nodeType":"ElementaryTypeName","src":"5031:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5030:26:7"},"returnParameters":{"id":2450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2449,"mutability":"mutable","name":"isBase","nameLocation":"5092:6:7","nodeType":"VariableDeclaration","scope":2466,"src":"5087:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2448,"name":"bool","nodeType":"ElementaryTypeName","src":"5087:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5086:13:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":2495,"nodeType":"FunctionDefinition","src":"5270:338:7","nodes":[],"body":{"id":2494,"nodeType":"Block","src":"5446:162:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2478,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2469,"src":"5479:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2477,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"5456:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5456:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2480,"nodeType":"ExpressionStatement","src":"5456:32:7"},{"assignments":[2483],"declarations":[{"constant":false,"id":2483,"mutability":"mutable","name":"reserved","nameLocation":"5517:8:7","nodeType":"VariableDeclaration","scope":2494,"src":"5498:27:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":2482,"nodeType":"UserDefinedTypeName","pathNode":{"id":2481,"name":"Reservation","nameLocations":["5498:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"5498:11:7"},"referencedDeclaration":2080,"src":"5498:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":2487,"initialValue":{"baseExpression":{"id":2484,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"5528:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":2486,"indexExpression":{"id":2485,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2469,"src":"5541:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5528:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5498:52:7"},{"expression":{"components":[{"expression":{"id":2488,"name":"reserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"5568:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5577:5:7","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2075,"src":"5568:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2490,"name":"reserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2483,"src":"5584:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5593:7:7","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":2077,"src":"5584:16:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":2492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5567:34:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint64_$","typeString":"tuple(address,uint64)"}},"functionReturnParameters":2476,"id":2493,"nodeType":"Return","src":"5560:41:7"}]},"baseFunctions":[2134],"documentation":{"id":2467,"nodeType":"StructuredDocumentation","src":"5240:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"8ac7f0f5","implemented":true,"kind":"function","modifiers":[],"name":"getBaseNameReservation","nameLocation":"5279:22:7","overrides":{"id":2471,"nodeType":"OverrideSpecifier","overrides":[],"src":"5366:8:7"},"parameters":{"id":2470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2469,"mutability":"mutable","name":"baseName","nameLocation":"5318:8:7","nodeType":"VariableDeclaration","scope":2495,"src":"5302:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2468,"name":"string","nodeType":"ElementaryTypeName","src":"5302:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5301:26:7"},"returnParameters":{"id":2476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2473,"mutability":"mutable","name":"reservationOwner","nameLocation":"5400:16:7","nodeType":"VariableDeclaration","scope":2495,"src":"5392:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2472,"name":"address","nodeType":"ElementaryTypeName","src":"5392:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2475,"mutability":"mutable","name":"expiryTimestamp","nameLocation":"5425:15:7","nodeType":"VariableDeclaration","scope":2495,"src":"5418:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2474,"name":"uint64","nodeType":"ElementaryTypeName","src":"5418:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5391:50:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2529,"nodeType":"FunctionDefinition","src":"5644:382:7","nodes":[],"body":{"id":2528,"nodeType":"Block","src":"5833:193:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2509,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"5866:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2508,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"5843:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5843:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2511,"nodeType":"ExpressionStatement","src":"5843:32:7"},{"assignments":[2514],"declarations":[{"constant":false,"id":2514,"mutability":"mutable","name":"reservation","nameLocation":"5904:11:7","nodeType":"VariableDeclaration","scope":2528,"src":"5885:30:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":2513,"nodeType":"UserDefinedTypeName","pathNode":{"id":2512,"name":"Reservation","nameLocations":["5885:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"5885:11:7"},"referencedDeclaration":2080,"src":"5885:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":2518,"initialValue":{"baseExpression":{"id":2515,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"5918:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":2517,"indexExpression":{"id":2516,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2498,"src":"5931:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5918:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5885:55:7"},{"expression":{"components":[{"arguments":[{"id":2520,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"5966:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}],"id":2519,"name":"_isLive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"5958:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Reservation_$2080_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IPopRules.Reservation memory) view returns (bool)"}},"id":2521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5958:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":2522,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"5980:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5992:5:7","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2075,"src":"5980:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2524,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"5999:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2525,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6011:7:7","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":2077,"src":"5999:19:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"id":2526,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5957:62:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$_t_uint64_$","typeString":"tuple(bool,address,uint64)"}},"functionReturnParameters":2507,"id":2527,"nodeType":"Return","src":"5950:69:7"}]},"baseFunctions":[2146],"documentation":{"id":2496,"nodeType":"StructuredDocumentation","src":"5614:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"91809994","implemented":true,"kind":"function","modifiers":[],"name":"isBaseNameReserved","nameLocation":"5653:18:7","overrides":{"id":2500,"nodeType":"OverrideSpecifier","overrides":[],"src":"5736:8:7"},"parameters":{"id":2499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2498,"mutability":"mutable","name":"baseName","nameLocation":"5688:8:7","nodeType":"VariableDeclaration","scope":2529,"src":"5672:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2497,"name":"string","nodeType":"ElementaryTypeName","src":"5672:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5671:26:7"},"returnParameters":{"id":2507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2502,"mutability":"mutable","name":"isReserved","nameLocation":"5767:10:7","nodeType":"VariableDeclaration","scope":2529,"src":"5762:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2501,"name":"bool","nodeType":"ElementaryTypeName","src":"5762:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2504,"mutability":"mutable","name":"reservationOwner","nameLocation":"5787:16:7","nodeType":"VariableDeclaration","scope":2529,"src":"5779:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2503,"name":"address","nodeType":"ElementaryTypeName","src":"5779:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2506,"mutability":"mutable","name":"expiryTimestamp","nameLocation":"5812:15:7","nodeType":"VariableDeclaration","scope":2529,"src":"5805:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":2505,"name":"uint64","nodeType":"ElementaryTypeName","src":"5805:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"5761:67:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2652,"nodeType":"FunctionDefinition","src":"6062:1330:7","nodes":[],"body":{"id":2651,"nodeType":"Block","src":"6250:1142:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2542,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2532,"src":"6283:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2541,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"6260:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6260:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2544,"nodeType":"ExpressionStatement","src":"6260:28:7"},{"expression":{"arguments":[{"id":2546,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2532,"src":"6323:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":2547,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2534,"src":"6329:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2545,"name":"_enforceReservationRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2977,"src":"6298:24:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_calldata_ptr_$_t_address_$returns$__$","typeString":"function (string calldata,address) view"}},"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:43:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2549,"nodeType":"ExpressionStatement","src":"6298:43:7"},{"assignments":[2552,2554],"declarations":[{"constant":false,"id":2552,"mutability":"mutable","name":"requiredStatus","nameLocation":"6363:14:7","nodeType":"VariableDeclaration","scope":2651,"src":"6353:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2551,"nodeType":"UserDefinedTypeName","pathNode":{"id":2550,"name":"PopStatus","nameLocations":["6353:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"6353:9:7"},"referencedDeclaration":2036,"src":"6353:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":2554,"mutability":"mutable","name":"classification","nameLocation":"6393:14:7","nodeType":"VariableDeclaration","scope":2651,"src":"6379:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2553,"name":"string","nodeType":"ElementaryTypeName","src":"6379:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2558,"initialValue":{"arguments":[{"id":2556,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2532,"src":"6434:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2555,"name":"_classifyValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"6411:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":2557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6411:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"6352:87:7"},{"assignments":[2561],"declarations":[{"constant":false,"id":2561,"mutability":"mutable","name":"userStatus","nameLocation":"6459:10:7","nodeType":"VariableDeclaration","scope":2651,"src":"6449:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2560,"nodeType":"UserDefinedTypeName","pathNode":{"id":2559,"name":"PopStatus","nameLocations":["6449:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"6449:9:7"},"referencedDeclaration":2036,"src":"6449:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"id":2565,"initialValue":{"arguments":[{"id":2563,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2534,"src":"6488:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2562,"name":"_personhoodTier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"6472:15:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_enum$_PopStatus_$2036_$","typeString":"function (address) view returns (enum IPopRules.PopStatus)"}},"id":2564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6472:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"VariableDeclarationStatement","src":"6449:51:7"},{"expression":{"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2566,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"6511:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6520:5:7","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":2063,"src":"6511:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2569,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2561,"src":"6540:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2570,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"6554:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6564:8:7","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":2032,"src":"6554:18:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"6540:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6617:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6540:78:7","trueExpression":{"arguments":[{"expression":{"arguments":[{"id":2576,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2532,"src":"6601:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6595:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2574,"name":"bytes","nodeType":"ElementaryTypeName","src":"6595:5:7","typeDescriptions":{}}},"id":2577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6595:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6607:6:7","memberName":"length","nodeType":"MemberAccess","src":"6595:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2573,"name":"_priceValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"6575:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6575:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6511:107:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2583,"nodeType":"ExpressionStatement","src":"6511:107:7"},{"expression":{"id":2588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2584,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"6628:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6637:6:7","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":2066,"src":"6628:15:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2587,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"6646:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"6628:32:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"id":2589,"nodeType":"ExpressionStatement","src":"6628:32:7"},{"expression":{"id":2594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2590,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"6670:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6679:10:7","memberName":"userStatus","nodeType":"MemberAccess","referencedDeclaration":2069,"src":"6670:19:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2593,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2561,"src":"6692:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"6670:32:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"id":2595,"nodeType":"ExpressionStatement","src":"6670:32:7"},{"expression":{"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2596,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"6712:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6721:7:7","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2071,"src":"6712:16:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2599,"name":"classification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2554,"src":"6731:14:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"6712:33:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":2601,"nodeType":"ExpressionStatement","src":"6712:33:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2603,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"6764:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":2604,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"6782:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6792:8:7","memberName":"Reserved","nodeType":"MemberAccess","referencedDeclaration":2035,"src":"6782:18:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"6764:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"id":2608,"name":"classification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2554,"src":"6811:14:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2607,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"6802:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":2609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6802:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":2602,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6756:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6756:71:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2611,"nodeType":"ExpressionStatement","src":"6756:71:7"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2612,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"6842:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2613,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"6860:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6870:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"6860:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"6842:35:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2627,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"7035:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2628,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"7053:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7063:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"7053:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"7035:35:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2647,"nodeType":"IfStatement","src":"7031:238:7","trueBody":{"id":2646,"nodeType":"Block","src":"7072:197:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2632,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2561,"src":"7111:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2633,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"7125:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7135:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"7125:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"7111:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2636,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2561,"src":"7146:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2637,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"7160:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7170:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"7160:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"7146:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7111:66:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"526571756972657320506572736f6e686f6f64204c69746520766572696669636174696f6e","id":2642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7204:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_e61bf021a631c1ed9b03b15bf0ff748ddf6d66e356c6301564a716f80911fdd7","typeString":"literal_string \"Requires Personhood Lite verification\""},"value":"Requires Personhood Lite verification"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e61bf021a631c1ed9b03b15bf0ff748ddf6d66e356c6301564a716f80911fdd7","typeString":"literal_string \"Requires Personhood Lite verification\""}],"id":2641,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"7195:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":2643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7195:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":2631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7086:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7086:172:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2645,"nodeType":"ExpressionStatement","src":"7086:172:7"}]}},"id":2648,"nodeType":"IfStatement","src":"6838:431:7","trueBody":{"id":2626,"nodeType":"Block","src":"6879:146:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2617,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2561,"src":"6918:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2618,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"6932:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6942:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"6932:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"6918:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"52657175697265732046756c6c20506572736f6e686f6f6420766572696669636174696f6e","id":2622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6960:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_44ac9a5113b90ab4f99691399c218699dbf43b454930f2cfc95c461314fe2803","typeString":"literal_string \"Requires Full Personhood verification\""},"value":"Requires Full Personhood verification"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_44ac9a5113b90ab4f99691399c218699dbf43b454930f2cfc95c461314fe2803","typeString":"literal_string \"Requires Full Personhood verification\""}],"id":2621,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"6951:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":2623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6951:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":2616,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6893:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":2624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6893:121:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2625,"nodeType":"ExpressionStatement","src":"6893:121:7"}]}},{"expression":{"id":2649,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"7377:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"functionReturnParameters":2540,"id":2650,"nodeType":"Return","src":"7370:15:7"}]},"baseFunctions":[2157],"documentation":{"id":2530,"nodeType":"StructuredDocumentation","src":"6032:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"6bbfce2b","implemented":true,"kind":"function","modifiers":[],"name":"priceWithCheck","nameLocation":"6071:14:7","overrides":{"id":2536,"nodeType":"OverrideSpecifier","overrides":[],"src":"6189:8:7"},"parameters":{"id":2535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2532,"mutability":"mutable","name":"name","nameLocation":"6111:4:7","nodeType":"VariableDeclaration","scope":2652,"src":"6095:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2531,"name":"string","nodeType":"ElementaryTypeName","src":"6095:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2534,"mutability":"mutable","name":"userAddress","nameLocation":"6133:11:7","nodeType":"VariableDeclaration","scope":2652,"src":"6125:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2533,"name":"address","nodeType":"ElementaryTypeName","src":"6125:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6085:65:7"},"returnParameters":{"id":2540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2539,"mutability":"mutable","name":"metadata","nameLocation":"6236:8:7","nodeType":"VariableDeclaration","scope":2652,"src":"6215:29:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta"},"typeName":{"id":2538,"nodeType":"UserDefinedTypeName","pathNode":{"id":2537,"name":"PriceWithMeta","nameLocations":["6215:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":2072,"src":"6215:13:7"},"referencedDeclaration":2072,"src":"6215:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_storage_ptr","typeString":"struct IPopRules.PriceWithMeta"}},"visibility":"internal"}],"src":"6214:31:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2760,"nodeType":"FunctionDefinition","src":"7428:1010:7","nodes":[],"body":{"id":2759,"nodeType":"Block","src":"7619:819:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2665,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"7652:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2664,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"7629:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7629:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2667,"nodeType":"ExpressionStatement","src":"7629:28:7"},{"assignments":[2670,2672],"declarations":[{"constant":false,"id":2670,"mutability":"mutable","name":"requiredStatus","nameLocation":"7679:14:7","nodeType":"VariableDeclaration","scope":2759,"src":"7669:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2669,"nodeType":"UserDefinedTypeName","pathNode":{"id":2668,"name":"PopStatus","nameLocations":["7669:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"7669:9:7"},"referencedDeclaration":2036,"src":"7669:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":2672,"mutability":"mutable","name":"classification","nameLocation":"7709:14:7","nodeType":"VariableDeclaration","scope":2759,"src":"7695:28:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2671,"name":"string","nodeType":"ElementaryTypeName","src":"7695:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2676,"initialValue":{"arguments":[{"id":2674,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"7750:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2673,"name":"_classifyValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"7727:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7727:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"7668:87:7"},{"assignments":[2679],"declarations":[{"constant":false,"id":2679,"mutability":"mutable","name":"userStatus","nameLocation":"7775:10:7","nodeType":"VariableDeclaration","scope":2759,"src":"7765:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2678,"nodeType":"UserDefinedTypeName","pathNode":{"id":2677,"name":"PopStatus","nameLocations":["7765:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"7765:9:7"},"referencedDeclaration":2036,"src":"7765:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"id":2683,"initialValue":{"arguments":[{"id":2681,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2657,"src":"7804:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2680,"name":"_personhoodTier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"7788:15:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_enum$_PopStatus_$2036_$","typeString":"function (address) view returns (enum IPopRules.PopStatus)"}},"id":2682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7788:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"VariableDeclarationStatement","src":"7765:51:7"},{"expression":{"id":2700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2684,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"7827:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7836:5:7","memberName":"price","nodeType":"MemberAccess","referencedDeclaration":2063,"src":"7827:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2687,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2679,"src":"7856:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2688,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"7870:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7880:8:7","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":2032,"src":"7870:18:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"7856:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7933:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"7856:78:7","trueExpression":{"arguments":[{"expression":{"arguments":[{"id":2694,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"7917:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7911:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2692,"name":"bytes","nodeType":"ElementaryTypeName","src":"7911:5:7","typeDescriptions":{}}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7911:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7923:6:7","memberName":"length","nodeType":"MemberAccess","src":"7911:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2691,"name":"_priceValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"7891:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7891:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7827:107:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2701,"nodeType":"ExpressionStatement","src":"7827:107:7"},{"expression":{"id":2706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2702,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"7944:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7953:6:7","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":2066,"src":"7944:15:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2705,"name":"requiredStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2670,"src":"7962:14:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"7944:32:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"id":2707,"nodeType":"ExpressionStatement","src":"7944:32:7"},{"expression":{"id":2712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2708,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"7986:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7995:10:7","memberName":"userStatus","nodeType":"MemberAccess","referencedDeclaration":2069,"src":"7986:19:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2711,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2679,"src":"8008:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"7986:32:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"id":2713,"nodeType":"ExpressionStatement","src":"7986:32:7"},{"expression":{"id":2718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2714,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"8028:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2716,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8037:7:7","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2071,"src":"8028:16:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2717,"name":"classification","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"8047:14:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8028:33:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":2719,"nodeType":"ExpressionStatement","src":"8028:33:7"},{"assignments":[2721],"declarations":[{"constant":false,"id":2721,"mutability":"mutable","name":"baseName","nameLocation":"8086:8:7","nodeType":"VariableDeclaration","scope":2759,"src":"8072:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2720,"name":"string","nodeType":"ElementaryTypeName","src":"8072:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2725,"initialValue":{"arguments":[{"id":2723,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2655,"src":"8110:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2722,"name":"_stripDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3133,"src":"8097:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (string memory)"}},"id":2724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8097:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"8072:43:7"},{"assignments":[2728],"declarations":[{"constant":false,"id":2728,"mutability":"mutable","name":"reservation","nameLocation":"8144:11:7","nodeType":"VariableDeclaration","scope":2759,"src":"8125:30:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":2727,"nodeType":"UserDefinedTypeName","pathNode":{"id":2726,"name":"Reservation","nameLocations":["8125:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"8125:11:7"},"referencedDeclaration":2080,"src":"8125:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":2732,"initialValue":{"baseExpression":{"id":2729,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"8158:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":2731,"indexExpression":{"id":2730,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2721,"src":"8171:8:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8158:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8125:55:7"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2734,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2728,"src":"8203:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}],"id":2733,"name":"_isLive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"8195:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Reservation_$2080_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IPopRules.Reservation memory) view returns (bool)"}},"id":2735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8195:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2736,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2728,"src":"8219:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2737,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8231:5:7","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2075,"src":"8219:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2738,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2657,"src":"8240:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8219:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8195:56:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2756,"nodeType":"IfStatement","src":"8191:215:7","trueBody":{"id":2755,"nodeType":"Block","src":"8253:153:7","statements":[{"expression":{"id":2745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2741,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"8267:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2743,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8276:7:7","memberName":"message","nodeType":"MemberAccess","referencedDeclaration":2071,"src":"8267:16:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"42617365206e616d6520726573657276656420666f72206f726967696e616c204c6974652072656769737472616e74","id":2744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8286:49:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_79a01a294a67387a7edaa4823021914cdb681481f514745448d051863f0b7823","typeString":"literal_string \"Base name reserved for original Lite registrant\""},"value":"Base name reserved for original Lite registrant"},"src":"8267:68:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":2746,"nodeType":"ExpressionStatement","src":"8267:68:7"},{"expression":{"id":2753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2747,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"8349:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"id":2749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8358:6:7","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":2066,"src":"8349:15:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":2750,"name":"IPopRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"8367:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPopRules_$2195_$","typeString":"type(contract IPopRules)"}},"id":2751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8377:9:7","memberName":"PopStatus","nodeType":"MemberAccess","referencedDeclaration":2036,"src":"8367:19:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8387:8:7","memberName":"Reserved","nodeType":"MemberAccess","referencedDeclaration":2035,"src":"8367:28:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"8349:46:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"id":2754,"nodeType":"ExpressionStatement","src":"8349:46:7"}]}},{"expression":{"id":2757,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"8423:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta memory"}},"functionReturnParameters":2663,"id":2758,"nodeType":"Return","src":"8416:15:7"}]},"baseFunctions":[2168],"documentation":{"id":2653,"nodeType":"StructuredDocumentation","src":"7398:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"dcd62573","implemented":true,"kind":"function","modifiers":[],"name":"priceWithoutCheck","nameLocation":"7437:17:7","overrides":{"id":2659,"nodeType":"OverrideSpecifier","overrides":[],"src":"7558:8:7"},"parameters":{"id":2658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2655,"mutability":"mutable","name":"name","nameLocation":"7480:4:7","nodeType":"VariableDeclaration","scope":2760,"src":"7464:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2654,"name":"string","nodeType":"ElementaryTypeName","src":"7464:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2657,"mutability":"mutable","name":"userAddress","nameLocation":"7502:11:7","nodeType":"VariableDeclaration","scope":2760,"src":"7494:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2656,"name":"address","nodeType":"ElementaryTypeName","src":"7494:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7454:65:7"},"returnParameters":{"id":2663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2662,"mutability":"mutable","name":"metadata","nameLocation":"7605:8:7","nodeType":"VariableDeclaration","scope":2760,"src":"7584:29:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_memory_ptr","typeString":"struct IPopRules.PriceWithMeta"},"typeName":{"id":2661,"nodeType":"UserDefinedTypeName","pathNode":{"id":2660,"name":"PriceWithMeta","nameLocations":["7584:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":2072,"src":"7584:13:7"},"referencedDeclaration":2072,"src":"7584:13:7","typeDescriptions":{"typeIdentifier":"t_struct$_PriceWithMeta_$2072_storage_ptr","typeString":"struct IPopRules.PriceWithMeta"}},"visibility":"internal"}],"src":"7583:31:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2782,"nodeType":"FunctionDefinition","src":"8474:177:7","nodes":[],"body":{"id":2781,"nodeType":"Block","src":"8550:101:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2770,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2763,"src":"8583:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2769,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"8560:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2772,"nodeType":"ExpressionStatement","src":"8560:28:7"},{"expression":{"arguments":[{"expression":{"arguments":[{"id":2776,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2763,"src":"8631:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8625:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2774,"name":"bytes","nodeType":"ElementaryTypeName","src":"8625:5:7","typeDescriptions":{}}},"id":2777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8637:6:7","memberName":"length","nodeType":"MemberAccess","src":"8625:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2773,"name":"_priceValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"8605:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8605:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2768,"id":2780,"nodeType":"Return","src":"8598:46:7"}]},"baseFunctions":[2194],"documentation":{"id":2761,"nodeType":"StructuredDocumentation","src":"8444:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"fe2c6198","implemented":true,"kind":"function","modifiers":[],"name":"price","nameLocation":"8483:5:7","overrides":{"id":2765,"nodeType":"OverrideSpecifier","overrides":[],"src":"8523:8:7"},"parameters":{"id":2764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2763,"mutability":"mutable","name":"name","nameLocation":"8505:4:7","nodeType":"VariableDeclaration","scope":2782,"src":"8489:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2762,"name":"string","nodeType":"ElementaryTypeName","src":"8489:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8488:22:7"},"returnParameters":{"id":2768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2782,"src":"8541:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2766,"name":"uint256","nodeType":"ElementaryTypeName","src":"8541:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8540:9:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":2823,"nodeType":"FunctionDefinition","src":"8687:418:7","nodes":[],"body":{"id":2822,"nodeType":"Block","src":"8847:258:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":2794,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8880:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2793,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"8857:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8857:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2796,"nodeType":"ExpressionStatement","src":"8857:28:7"},{"assignments":[2799,null],"declarations":[{"constant":false,"id":2799,"mutability":"mutable","name":"required","nameLocation":"8906:8:7","nodeType":"VariableDeclaration","scope":2822,"src":"8896:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2798,"nodeType":"UserDefinedTypeName","pathNode":{"id":2797,"name":"PopStatus","nameLocations":["8896:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"8896:9:7"},"referencedDeclaration":2036,"src":"8896:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},null],"id":2803,"initialValue":{"arguments":[{"id":2801,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"8942:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2800,"name":"_classifyValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3222,"src":"8919:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (enum IPopRules.PopStatus,string memory)"}},"id":2802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8919:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_string_memory_ptr_$","typeString":"tuple(enum IPopRules.PopStatus,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"8895:52:7"},{"condition":{"arguments":[{"id":2805,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2799,"src":"8973:8:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},{"arguments":[{"id":2807,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2787,"src":"8999:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2806,"name":"_personhoodTier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2867,"src":"8983:15:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_enum$_PopStatus_$2036_$","typeString":"function (address) view returns (enum IPopRules.PopStatus)"}},"id":2808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8983:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}],"id":2804,"name":"_meetsReach","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2909,"src":"8961:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_PopStatus_$2036_$_t_enum$_PopStatus_$2036_$returns$_t_bool_$","typeString":"function (enum IPopRules.PopStatus,enum IPopRules.PopStatus) pure returns (bool)"}},"id":2809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:47:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2813,"nodeType":"IfStatement","src":"8957:86:7","trueBody":{"id":2812,"nodeType":"Block","src":"9010:33:7","statements":[{"expression":{"hexValue":"30","id":2810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9031:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2792,"id":2811,"nodeType":"Return","src":"9024:8:7"}]}},{"expression":{"arguments":[{"expression":{"arguments":[{"id":2817,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2785,"src":"9085:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9079:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2815,"name":"bytes","nodeType":"ElementaryTypeName","src":"9079:5:7","typeDescriptions":{}}},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9079:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9091:6:7","memberName":"length","nodeType":"MemberAccess","src":"9079:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2814,"name":"_priceValidatedName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2940,"src":"9059:19:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":2820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9059:39:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2792,"id":2821,"nodeType":"Return","src":"9052:46:7"}]},"baseFunctions":[2178],"documentation":{"id":2783,"nodeType":"StructuredDocumentation","src":"8657:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"453fa0f4","implemented":true,"kind":"function","modifiers":[],"name":"reachFee","nameLocation":"8696:8:7","overrides":{"id":2789,"nodeType":"OverrideSpecifier","overrides":[],"src":"8804:8:7"},"parameters":{"id":2788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2785,"mutability":"mutable","name":"name","nameLocation":"8730:4:7","nodeType":"VariableDeclaration","scope":2823,"src":"8714:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2784,"name":"string","nodeType":"ElementaryTypeName","src":"8714:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2787,"mutability":"mutable","name":"account","nameLocation":"8752:7:7","nodeType":"VariableDeclaration","scope":2823,"src":"8744:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2786,"name":"address","nodeType":"ElementaryTypeName","src":"8744:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8704:61:7"},"returnParameters":{"id":2792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2791,"mutability":"mutable","name":"fee","nameLocation":"8838:3:7","nodeType":"VariableDeclaration","scope":2823,"src":"8830:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2790,"name":"uint256","nodeType":"ElementaryTypeName","src":"8830:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8829:13:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2867,"nodeType":"FunctionDefinition","src":"9675:392:7","nodes":[],"body":{"id":2866,"nodeType":"Block","src":"9750:317:7","nodes":[],"statements":[{"assignments":[2836],"declarations":[{"constant":false,"id":2836,"mutability":"mutable","name":"info","nameLocation":"9794:4:7","nodeType":"VariableDeclaration","scope":2866,"src":"9760:38:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PersonhoodInfo_$2005_memory_ptr","typeString":"struct IPersonhood.PersonhoodInfo"},"typeName":{"id":2835,"nodeType":"UserDefinedTypeName","pathNode":{"id":2834,"name":"IPersonhood.PersonhoodInfo","nameLocations":["9760:11:7","9772:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":2005,"src":"9760:26:7"},"referencedDeclaration":2005,"src":"9760:26:7","typeDescriptions":{"typeIdentifier":"t_struct$_PersonhoodInfo_$2005_storage_ptr","typeString":"struct IPersonhood.PersonhoodInfo"}},"visibility":"internal"}],"id":2846,"initialValue":{"arguments":[{"id":2842,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2826,"src":"9870:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":2843,"name":"DotnsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"9879:14:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DotnsConstants_$12398_$","typeString":"type(library DotnsConstants)"}},"id":2844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9894:18:7","memberName":"PERSONHOOD_CONTEXT","nodeType":"MemberAccess","referencedDeclaration":12303,"src":"9879:33:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"id":2838,"name":"DotnsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"9813:14:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DotnsConstants_$12398_$","typeString":"type(library DotnsConstants)"}},"id":2839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9828:10:7","memberName":"PERSONHOOD","nodeType":"MemberAccess","referencedDeclaration":12296,"src":"9813:25:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2837,"name":"IPersonhood","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2017,"src":"9801:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPersonhood_$2017_$","typeString":"type(contract IPersonhood)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9801:38:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPersonhood_$2017","typeString":"contract IPersonhood"}},"id":2841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9853:16:7","memberName":"personhoodStatus","nodeType":"MemberAccess","referencedDeclaration":2016,"src":"9801:68:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_struct$_PersonhoodInfo_$2005_memory_ptr_$","typeString":"function (address,bytes32) view external returns (struct IPersonhood.PersonhoodInfo memory)"}},"id":2845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9801:112:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PersonhoodInfo_$2005_memory_ptr","typeString":"struct IPersonhood.PersonhoodInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"9760:153:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2847,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"9927:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_PersonhoodInfo_$2005_memory_ptr","typeString":"struct IPersonhood.PersonhoodInfo memory"}},"id":2848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9932:6:7","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":2002,"src":"9927:11:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":2849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9942:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9927:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2854,"nodeType":"IfStatement","src":"9923:46:7","trueBody":{"expression":{"expression":{"id":2851,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"9952:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9962:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"9952:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"functionReturnParameters":2831,"id":2853,"nodeType":"Return","src":"9945:24:7"}},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2855,"name":"info","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"9983:4:7","typeDescriptions":{"typeIdentifier":"t_struct$_PersonhoodInfo_$2005_memory_ptr","typeString":"struct IPersonhood.PersonhoodInfo memory"}},"id":2856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9988:6:7","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":2002,"src":"9983:11:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":2857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9998:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9983:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2862,"nodeType":"IfStatement","src":"9979:46:7","trueBody":{"expression":{"expression":{"id":2859,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10008:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10018:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"10008:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"functionReturnParameters":2831,"id":2861,"nodeType":"Return","src":"10001:24:7"}},{"expression":{"expression":{"id":2863,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10042:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10052:8:7","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":2032,"src":"10042:18:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"functionReturnParameters":2831,"id":2865,"nodeType":"Return","src":"10035:25:7"}]},"documentation":{"id":2824,"nodeType":"StructuredDocumentation","src":"9111:559:7","text":"@notice Reads `account`'s dotns-scoped personhood tier from the alias-accounts\n precompile and translates it into a `PopStatus`.\n @dev Single source of truth so callers cannot read the precompile directly and\n drift on the status mapping. Tiers are defined incrementally on the\n precompile side: 0=None, 1=Lite, 2=Full. Anything outside that range\n collapses to `NoStatus` so a future tier addition fails closed instead of\n silently being treated as a higher level than it actually is."},"implemented":true,"kind":"function","modifiers":[],"name":"_personhoodTier","nameLocation":"9684:15:7","parameters":{"id":2827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2826,"mutability":"mutable","name":"account","nameLocation":"9708:7:7","nodeType":"VariableDeclaration","scope":2867,"src":"9700:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2825,"name":"address","nodeType":"ElementaryTypeName","src":"9700:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9699:17:7"},"returnParameters":{"id":2831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2867,"src":"9739:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2829,"nodeType":"UserDefinedTypeName","pathNode":{"id":2828,"name":"PopStatus","nameLocations":["9739:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"9739:9:7"},"referencedDeclaration":2036,"src":"9739:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"src":"9738:11:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":2909,"nodeType":"FunctionDefinition","src":"10356:368:7","nodes":[],"body":{"id":2908,"nodeType":"Block","src":"10447:277:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2879,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2871,"src":"10461:8:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2880,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10473:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10483:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"10473:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"10461:29:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2889,"nodeType":"IfStatement","src":"10457:98:7","trueBody":{"id":2888,"nodeType":"Block","src":"10492:63:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2883,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"10513:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2884,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10527:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2885,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10537:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"10527:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"10513:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2878,"id":2887,"nodeType":"Return","src":"10506:38:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2890,"name":"required","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2871,"src":"10568:8:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2891,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10580:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10590:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"10580:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"10568:29:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2905,"nodeType":"IfStatement","src":"10564:133:7","trueBody":{"id":2904,"nodeType":"Block","src":"10599:98:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2894,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"10620:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2895,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10634:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2896,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10644:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"10634:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"10620:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2898,"name":"userStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"10655:10:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2899,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"10669:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":2900,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10679:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"10669:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"src":"10655:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10620:66:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2878,"id":2903,"nodeType":"Return","src":"10613:73:7"}]}},{"expression":{"hexValue":"74727565","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10713:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":2878,"id":2907,"nodeType":"Return","src":"10706:11:7"}]},"documentation":{"id":2868,"nodeType":"StructuredDocumentation","src":"10073:278:7","text":"@notice Single canonical \"is `userStatus` at reach for `required`?\" predicate.\n @dev Both `reachFee` and `priceWithCheck` build on this so the tier-eligibility rule lives\n in exactly one place and the two callers cannot disagree about who clears a given label."},"implemented":true,"kind":"function","modifiers":[],"name":"_meetsReach","nameLocation":"10365:11:7","parameters":{"id":2875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2871,"mutability":"mutable","name":"required","nameLocation":"10387:8:7","nodeType":"VariableDeclaration","scope":2909,"src":"10377:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2870,"nodeType":"UserDefinedTypeName","pathNode":{"id":2869,"name":"PopStatus","nameLocations":["10377:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"10377:9:7"},"referencedDeclaration":2036,"src":"10377:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":2874,"mutability":"mutable","name":"userStatus","nameLocation":"10407:10:7","nodeType":"VariableDeclaration","scope":2909,"src":"10397:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":2873,"nodeType":"UserDefinedTypeName","pathNode":{"id":2872,"name":"PopStatus","nameLocations":["10397:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"10397:9:7"},"referencedDeclaration":2036,"src":"10397:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"}],"src":"10376:42:7"},"returnParameters":{"id":2878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2909,"src":"10441:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2876,"name":"bool","nodeType":"ElementaryTypeName","src":"10441:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10440:6:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":2940,"nodeType":"FunctionDefinition","src":"10730:293:7","nodes":[],"body":{"id":2939,"nodeType":"Block","src":"10822:201:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2916,"name":"namelength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10836:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"39","id":2917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10849:1:7","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"10836:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2922,"nodeType":"IfStatement","src":"10832:53:7","trueBody":{"id":2921,"nodeType":"Block","src":"10852:33:7","statements":[{"expression":{"hexValue":"30","id":2919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10873:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2915,"id":2920,"nodeType":"Return","src":"10866:8:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2923,"name":"namelength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"10899:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3135","id":2924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10913:2:7","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"10899:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2931,"nodeType":"IfStatement","src":"10895:71:7","trueBody":{"id":2930,"nodeType":"Block","src":"10917:49:7","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2926,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"10938:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10954:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10938:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2915,"id":2929,"nodeType":"Return","src":"10931:24:7"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2932,"name":"startingPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2235,"src":"10983:13:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3135","id":2933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11000:2:7","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2934,"name":"namelength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"11005:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11000:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10999:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10983:33:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2915,"id":2938,"nodeType":"Return","src":"10976:40:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_priceValidatedName","nameLocation":"10739:19:7","parameters":{"id":2912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2911,"mutability":"mutable","name":"namelength","nameLocation":"10767:10:7","nodeType":"VariableDeclaration","scope":2940,"src":"10759:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2910,"name":"uint256","nodeType":"ElementaryTypeName","src":"10759:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10758:20:7"},"returnParameters":{"id":2915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2914,"mutability":"mutable","name":"priceValue","nameLocation":"10810:10:7","nodeType":"VariableDeclaration","scope":2940,"src":"10802:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2913,"name":"uint256","nodeType":"ElementaryTypeName","src":"10802:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10801:20:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2977,"nodeType":"FunctionDefinition","src":"11162:425:7","nodes":[],"body":{"id":2976,"nodeType":"Block","src":"11253:334:7","nodes":[],"statements":[{"assignments":[2949],"declarations":[{"constant":false,"id":2949,"mutability":"mutable","name":"baseName","nameLocation":"11277:8:7","nodeType":"VariableDeclaration","scope":2976,"src":"11263:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2948,"name":"string","nodeType":"ElementaryTypeName","src":"11263:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2953,"initialValue":{"arguments":[{"id":2951,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2943,"src":"11301:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":2950,"name":"_stripDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3133,"src":"11288:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string calldata) pure returns (string memory)"}},"id":2952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11288:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"11263:43:7"},{"assignments":[2956],"declarations":[{"constant":false,"id":2956,"mutability":"mutable","name":"reservation","nameLocation":"11335:11:7","nodeType":"VariableDeclaration","scope":2976,"src":"11316:30:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":2955,"nodeType":"UserDefinedTypeName","pathNode":{"id":2954,"name":"Reservation","nameLocations":["11316:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"11316:11:7"},"referencedDeclaration":2080,"src":"11316:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":2960,"initialValue":{"baseExpression":{"id":2957,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"11349:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":2959,"indexExpression":{"id":2958,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2949,"src":"11362:8:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11349:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11316:55:7"},{"condition":{"arguments":[{"id":2962,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"11394:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}],"id":2961,"name":"_isLive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"11386:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Reservation_$2080_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IPopRules.Reservation memory) view returns (bool)"}},"id":2963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11386:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2975,"nodeType":"IfStatement","src":"11382:199:7","trueBody":{"id":2974,"nodeType":"Block","src":"11408:173:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2965,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"11447:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11459:5:7","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2075,"src":"11447:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2967,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2945,"src":"11468:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11447:32:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"42617365206e616d6520726573657276656420666f72206f726967696e616c204c6974652072656769737472616e74","id":2970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11506:49:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_79a01a294a67387a7edaa4823021914cdb681481f514745448d051863f0b7823","typeString":"literal_string \"Base name reserved for original Lite registrant\""},"value":"Base name reserved for original Lite registrant"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79a01a294a67387a7edaa4823021914cdb681481f514745448d051863f0b7823","typeString":"literal_string \"Base name reserved for original Lite registrant\""}],"id":2969,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"11497:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":2971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11497:59:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":2964,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11422:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":2972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11422:148:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2973,"nodeType":"ExpressionStatement","src":"11422:148:7"}]}}]},"documentation":{"id":2941,"nodeType":"StructuredDocumentation","src":"11029:128:7","text":"@notice Enforces base-name reservation rules.\n @param name Domain label.\n @param userAddress Registering user."},"implemented":true,"kind":"function","modifiers":[],"name":"_enforceReservationRules","nameLocation":"11171:24:7","parameters":{"id":2946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2943,"mutability":"mutable","name":"name","nameLocation":"11212:4:7","nodeType":"VariableDeclaration","scope":2977,"src":"11196:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2942,"name":"string","nodeType":"ElementaryTypeName","src":"11196:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2945,"mutability":"mutable","name":"userAddress","nameLocation":"11226:11:7","nodeType":"VariableDeclaration","scope":2977,"src":"11218:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2944,"name":"address","nodeType":"ElementaryTypeName","src":"11218:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11195:43:7"},"returnParameters":{"id":2947,"nodeType":"ParameterList","parameters":[],"src":"11253:0:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":3001,"nodeType":"FunctionDefinition","src":"11669:174:7","nodes":[],"body":{"id":3000,"nodeType":"Block","src":"11747:96:7","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2986,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2981,"src":"11764:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11776:5:7","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2075,"src":"11764:17:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":2990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11793:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11785:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2988,"name":"address","nodeType":"ElementaryTypeName","src":"11785:7:7","typeDescriptions":{}}},"id":2991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11785:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11764:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2993,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2981,"src":"11799:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":2994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11811:7:7","memberName":"expires","nodeType":"MemberAccess","referencedDeclaration":2077,"src":"11799:19:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":2995,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"11821:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11827:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"11821:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11799:37:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11764:72:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2985,"id":2999,"nodeType":"Return","src":"11757:79:7"}]},"documentation":{"id":2978,"nodeType":"StructuredDocumentation","src":"11593:71:7","text":"@notice Returns whether `reservation` is live at `block.timestamp`."},"implemented":true,"kind":"function","modifiers":[],"name":"_isLive","nameLocation":"11678:7:7","parameters":{"id":2982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2981,"mutability":"mutable","name":"reservation","nameLocation":"11705:11:7","nodeType":"VariableDeclaration","scope":3001,"src":"11686:30:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":2980,"nodeType":"UserDefinedTypeName","pathNode":{"id":2979,"name":"Reservation","nameLocations":["11686:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"11686:11:7"},"referencedDeclaration":2080,"src":"11686:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"src":"11685:32:7"},"returnParameters":{"id":2985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3001,"src":"11741:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2983,"name":"bool","nodeType":"ElementaryTypeName","src":"11741:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11740:6:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":3056,"nodeType":"FunctionDefinition","src":"11995:457:7","nodes":[],"body":{"id":3055,"nodeType":"Block","src":"12119:333:7","nodes":[],"statements":[{"assignments":[3010],"declarations":[{"constant":false,"id":3010,"mutability":"mutable","name":"bytesLabel","nameLocation":"12144:10:7","nodeType":"VariableDeclaration","scope":3055,"src":"12129:25:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3009,"name":"bytes","nodeType":"ElementaryTypeName","src":"12129:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3015,"initialValue":{"arguments":[{"id":3013,"name":"label","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3004,"src":"12163:5:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3012,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12157:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3011,"name":"bytes","nodeType":"ElementaryTypeName","src":"12157:5:7","typeDescriptions":{}}},"id":3014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12157:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"12129:40:7"},{"assignments":[3017],"declarations":[{"constant":false,"id":3017,"mutability":"mutable","name":"stringlength","nameLocation":"12187:12:7","nodeType":"VariableDeclaration","scope":3055,"src":"12179:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3016,"name":"uint256","nodeType":"ElementaryTypeName","src":"12179:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3020,"initialValue":{"expression":{"id":3018,"name":"bytesLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"12202:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12213:6:7","memberName":"length","nodeType":"MemberAccess","src":"12202:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12179:40:7"},{"body":{"id":3053,"nodeType":"Block","src":"12273:173:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3031,"name":"bytesLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"12291:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3035,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3032,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"12302:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12306:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12302:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12291:17:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783330","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12312:4:7","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"0x30"},"src":"12291:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3038,"name":"bytesLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3010,"src":"12320:10:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3042,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"12331:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12335:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12331:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12320:17:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30783339","id":3043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12341:4:7","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"0x39"},"src":"12320:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12291:54:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3051,"nodeType":"Block","src":"12398:38:7","statements":[{"id":3050,"nodeType":"Break","src":"12416:5:7"}]},"id":3052,"nodeType":"IfStatement","src":"12287:149:7","trueBody":{"id":3049,"nodeType":"Block","src":"12347:45:7","statements":[{"expression":{"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12365:12:7","subExpression":{"id":3046,"name":"digitCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3007,"src":"12365:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3048,"nodeType":"ExpressionStatement","src":"12365:12:7"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"12261:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12265:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12261:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3054,"initializationExpression":{"assignments":[3022],"declarations":[{"constant":false,"id":3022,"mutability":"mutable","name":"i","nameLocation":"12243:1:7","nodeType":"VariableDeclaration","scope":3054,"src":"12235:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3021,"name":"uint256","nodeType":"ElementaryTypeName","src":"12235:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3024,"initialValue":{"id":3023,"name":"stringlength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"12247:12:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12235:24:7"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":3029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"12268:3:7","subExpression":{"id":3028,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3022,"src":"12268:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3030,"nodeType":"ExpressionStatement","src":"12268:3:7"},"nodeType":"ForStatement","src":"12230:216:7"}]},"documentation":{"id":3002,"nodeType":"StructuredDocumentation","src":"11849:141:7","text":"@notice Counts trailing digits in a string.\n @param label String to analyse.\n @return digitCount Number of trailing digits."},"implemented":true,"kind":"function","modifiers":[],"name":"_countTrailingDigits","nameLocation":"12004:20:7","parameters":{"id":3005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3004,"mutability":"mutable","name":"label","nameLocation":"12041:5:7","nodeType":"VariableDeclaration","scope":3056,"src":"12025:21:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3003,"name":"string","nodeType":"ElementaryTypeName","src":"12025:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12024:23:7"},"returnParameters":{"id":3008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3007,"mutability":"mutable","name":"digitCount","nameLocation":"12103:10:7","nodeType":"VariableDeclaration","scope":3056,"src":"12095:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3006,"name":"uint256","nodeType":"ElementaryTypeName","src":"12095:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12094:20:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3133,"nodeType":"FunctionDefinition","src":"12544:567:7","nodes":[],"body":{"id":3132,"nodeType":"Block","src":"12635:476:7","nodes":[],"statements":[{"assignments":[3065],"declarations":[{"constant":false,"id":3065,"mutability":"mutable","name":"bytesName","nameLocation":"12660:9:7","nodeType":"VariableDeclaration","scope":3132,"src":"12645:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3064,"name":"bytes","nodeType":"ElementaryTypeName","src":"12645:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3070,"initialValue":{"arguments":[{"id":3068,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3059,"src":"12678:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12672:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3066,"name":"bytes","nodeType":"ElementaryTypeName","src":"12672:5:7","typeDescriptions":{}}},"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12672:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"12645:38:7"},{"assignments":[3072],"declarations":[{"constant":false,"id":3072,"mutability":"mutable","name":"endPosition","nameLocation":"12701:11:7","nodeType":"VariableDeclaration","scope":3132,"src":"12693:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3071,"name":"uint256","nodeType":"ElementaryTypeName","src":"12693:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3075,"initialValue":{"expression":{"id":3073,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3065,"src":"12715:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12725:6:7","memberName":"length","nodeType":"MemberAccess","src":"12715:16:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12693:38:7"},{"body":{"id":3098,"nodeType":"Block","src":"12880:38:7","statements":[{"expression":{"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"12894:13:7","subExpression":{"id":3095,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3072,"src":"12894:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3097,"nodeType":"ExpressionStatement","src":"12894:13:7"}]},"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3076,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3072,"src":"12762:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12776:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12762:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3079,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3065,"src":"12781:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3083,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3080,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3072,"src":"12791:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12805:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12791:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12781:26:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783330","id":3084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12811:4:7","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"0x30"},"src":"12781:34:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12762:53:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":3093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":3087,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3065,"src":"12835:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3091,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3088,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3072,"src":"12845:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12859:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12845:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12835:26:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30783339","id":3092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12865:4:7","typeDescriptions":{"typeIdentifier":"t_rational_57_by_1","typeString":"int_const 57"},"value":"0x39"},"src":"12835:34:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12762:107:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3099,"nodeType":"WhileStatement","src":"12742:176:7"},{"assignments":[3101],"declarations":[{"constant":false,"id":3101,"mutability":"mutable","name":"output","nameLocation":"12941:6:7","nodeType":"VariableDeclaration","scope":3132,"src":"12928:19:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3100,"name":"bytes","nodeType":"ElementaryTypeName","src":"12928:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":3106,"initialValue":{"arguments":[{"id":3104,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3072,"src":"12960:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12950:9:7","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":3102,"name":"bytes","nodeType":"ElementaryTypeName","src":"12954:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12950:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12928:44:7"},{"body":{"id":3125,"nodeType":"Block","src":"13024:49:7","statements":[{"expression":{"id":3123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3117,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3101,"src":"13038:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3119,"indexExpression":{"id":3118,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"13045:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13038:9:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":3120,"name":"bytesName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3065,"src":"13050:9:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3122,"indexExpression":{"id":3121,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"13060:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13050:12:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"13038:24:7","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":3124,"nodeType":"ExpressionStatement","src":"13038:24:7"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3111,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"13002:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3112,"name":"endPosition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3072,"src":"13006:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13002:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3126,"initializationExpression":{"assignments":[3108],"declarations":[{"constant":false,"id":3108,"mutability":"mutable","name":"i","nameLocation":"12995:1:7","nodeType":"VariableDeclaration","scope":3126,"src":"12987:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3107,"name":"uint256","nodeType":"ElementaryTypeName","src":"12987:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3110,"initialValue":{"hexValue":"30","id":3109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12999:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12987:13:7"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13019:3:7","subExpression":{"id":3114,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"13019:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3116,"nodeType":"ExpressionStatement","src":"13019:3:7"},"nodeType":"ForStatement","src":"12982:91:7"},{"expression":{"arguments":[{"id":3129,"name":"output","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3101,"src":"13097:6:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13090:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3127,"name":"string","nodeType":"ElementaryTypeName","src":"13090:6:7","typeDescriptions":{}}},"id":3130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13090:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3063,"id":3131,"nodeType":"Return","src":"13083:21:7"}]},"documentation":{"id":3057,"nodeType":"StructuredDocumentation","src":"12458:81:7","text":"@notice Strips trailing digits from a name.\n @param name Domain label."},"implemented":true,"kind":"function","modifiers":[],"name":"_stripDigits","nameLocation":"12553:12:7","parameters":{"id":3060,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3059,"mutability":"mutable","name":"name","nameLocation":"12582:4:7","nodeType":"VariableDeclaration","scope":3133,"src":"12566:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3058,"name":"string","nodeType":"ElementaryTypeName","src":"12566:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12565:22:7"},"returnParameters":{"id":3063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3062,"mutability":"mutable","name":"baseName","nameLocation":"12625:8:7","nodeType":"VariableDeclaration","scope":3133,"src":"12611:22:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3061,"name":"string","nodeType":"ElementaryTypeName","src":"12611:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12610:24:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3222,"nodeType":"FunctionDefinition","src":"13117:994:7","nodes":[],"body":{"id":3221,"nodeType":"Block","src":"13268:843:7","nodes":[],"statements":[{"assignments":[3144],"declarations":[{"constant":false,"id":3144,"mutability":"mutable","name":"totallength","nameLocation":"13286:11:7","nodeType":"VariableDeclaration","scope":3221,"src":"13278:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3143,"name":"uint256","nodeType":"ElementaryTypeName","src":"13278:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3150,"initialValue":{"expression":{"arguments":[{"id":3147,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3135,"src":"13306:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13300:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3145,"name":"bytes","nodeType":"ElementaryTypeName","src":"13300:5:7","typeDescriptions":{}}},"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13300:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13312:6:7","memberName":"length","nodeType":"MemberAccess","src":"13300:18:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13278:40:7"},{"assignments":[3152],"declarations":[{"constant":false,"id":3152,"mutability":"mutable","name":"trailingDigits","nameLocation":"13336:14:7","nodeType":"VariableDeclaration","scope":3221,"src":"13328:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3151,"name":"uint256","nodeType":"ElementaryTypeName","src":"13328:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3156,"initialValue":{"arguments":[{"id":3154,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3135,"src":"13374:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3153,"name":"_countTrailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3056,"src":"13353:20:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_uint256_$","typeString":"function (string calldata) pure returns (uint256)"}},"id":3155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13353:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13328:51:7"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3158,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"13398:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"32","id":3159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13416:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13398:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"4e616d652063616e2068617665206d6178696d756d203220646967697420737566666978","id":3162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13428:38:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_63492d9571144dcb7601da998aa9bd05b8551a271ab715f8e26ba8398bcee36d","typeString":"literal_string \"Name can have maximum 2 digit suffix\""},"value":"Name can have maximum 2 digit suffix"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63492d9571144dcb7601da998aa9bd05b8551a271ab715f8e26ba8398bcee36d","typeString":"literal_string \"Name can have maximum 2 digit suffix\""}],"id":3161,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"13419:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13419:48:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":3157,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13390:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":3164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13390:78:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3165,"nodeType":"ExpressionStatement","src":"13390:78:7"},{"assignments":[3167],"declarations":[{"constant":false,"id":3167,"mutability":"mutable","name":"baselength","nameLocation":"13487:10:7","nodeType":"VariableDeclaration","scope":3221,"src":"13479:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3166,"name":"uint256","nodeType":"ElementaryTypeName","src":"13479:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3171,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3168,"name":"totallength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3144,"src":"13500:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":3169,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"13514:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13500:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13479:49:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3172,"name":"baselength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3167,"src":"13543:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"35","id":3173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13557:1:7","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"13543:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3181,"nodeType":"IfStatement","src":"13539:100:7","trueBody":{"id":3180,"nodeType":"Block","src":"13560:79:7","statements":[{"expression":{"components":[{"expression":{"id":3175,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"13582:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":3176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13592:8:7","memberName":"Reserved","nodeType":"MemberAccess","referencedDeclaration":2035,"src":"13582:18:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"526573657276656420666f7220476f7665726e616e6365","id":3177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13602:25:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7956ca3f0978aa4071bf09e113e895a6f37785ed864786f858d0445711ea48f","typeString":"literal_string \"Reserved for Governance\""},"value":"Reserved for Governance"}],"id":3178,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13581:47:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_stringliteral_b7956ca3f0978aa4071bf09e113e895a6f37785ed864786f858d0445711ea48f_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Reserved for Governance\")"}},"functionReturnParameters":3142,"id":3179,"nodeType":"Return","src":"13574:54:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3182,"name":"baselength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3167,"src":"13653:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"36","id":3183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13667:1:7","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"13653:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3185,"name":"baselength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3167,"src":"13672:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"38","id":3186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13686:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"13672:15:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13653:34:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3205,"nodeType":"IfStatement","src":"13649:271:7","trueBody":{"id":3204,"nodeType":"Block","src":"13689:231:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3189,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"13707:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":3190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13725:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13707:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3198,"nodeType":"IfStatement","src":"13703:126:7","trueBody":{"id":3197,"nodeType":"Block","src":"13728:101:7","statements":[{"expression":{"components":[{"expression":{"id":3192,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"13754:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":3193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13764:7:7","memberName":"PopLite","nodeType":"MemberAccess","referencedDeclaration":2033,"src":"13754:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"5265717569726573204c6967687420706572736f6e686f6f6420766572696669636174696f6e","id":3194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13773:40:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_68ecbc02e8d7f383157306e048c0a9c1f32862047503a6eabba9734ed82ac713","typeString":"literal_string \"Requires Light personhood verification\""},"value":"Requires Light personhood verification"}],"id":3195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13753:61:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_stringliteral_68ecbc02e8d7f383157306e048c0a9c1f32862047503a6eabba9734ed82ac713_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Requires Light personhood verification\")"}},"functionReturnParameters":3142,"id":3196,"nodeType":"Return","src":"13746:68:7"}]}},{"expression":{"components":[{"expression":{"id":3199,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"13850:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13860:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"13850:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"52657175697265732046756c6c20706572736f6e686f6f6420766572696669636174696f6e","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13869:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71","typeString":"literal_string \"Requires Full personhood verification\""},"value":"Requires Full personhood verification"}],"id":3202,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13849:60:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Requires Full personhood verification\")"}},"functionReturnParameters":3142,"id":3203,"nodeType":"Return","src":"13842:67:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3206,"name":"trailingDigits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3152,"src":"13934:14:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":3207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13952:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"13934:19:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3215,"nodeType":"IfStatement","src":"13930:97:7","trueBody":{"id":3214,"nodeType":"Block","src":"13955:72:7","statements":[{"expression":{"components":[{"expression":{"id":3209,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"13977:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":3210,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13987:8:7","memberName":"NoStatus","nodeType":"MemberAccess","referencedDeclaration":2032,"src":"13977:18:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"417661696c61626c6520746f20616c6c","id":3211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13997:18:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_e245709084d01d1a9a8ee214a6f7bf853604ec8557b914522d179e589afba242","typeString":"literal_string \"Available to all\""},"value":"Available to all"}],"id":3212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"13976:40:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_stringliteral_e245709084d01d1a9a8ee214a6f7bf853604ec8557b914522d179e589afba242_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Available to all\")"}},"functionReturnParameters":3142,"id":3213,"nodeType":"Return","src":"13969:47:7"}]}},{"expression":{"components":[{"expression":{"id":3216,"name":"PopStatus","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"14045:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PopStatus_$2036_$","typeString":"type(enum IPopRules.PopStatus)"}},"id":3217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14055:7:7","memberName":"PopFull","nodeType":"MemberAccess","referencedDeclaration":2034,"src":"14045:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},{"hexValue":"52657175697265732046756c6c20706572736f6e686f6f6420766572696669636174696f6e","id":3218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14064:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71","typeString":"literal_string \"Requires Full personhood verification\""},"value":"Requires Full personhood verification"}],"id":3219,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"14044:60:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_enum$_PopStatus_$2036_$_t_stringliteral_fcaf390942bb7b7b418bcf8cdb58c20d680de506cf500f16c439be06ec5c5a71_$","typeString":"tuple(enum IPopRules.PopStatus,literal_string \"Requires Full personhood verification\")"}},"functionReturnParameters":3142,"id":3220,"nodeType":"Return","src":"14037:67:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_classifyValidatedName","nameLocation":"13126:22:7","parameters":{"id":3136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3135,"mutability":"mutable","name":"name","nameLocation":"13165:4:7","nodeType":"VariableDeclaration","scope":3222,"src":"13149:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3134,"name":"string","nodeType":"ElementaryTypeName","src":"13149:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13148:22:7"},"returnParameters":{"id":3142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3139,"mutability":"mutable","name":"requirement","nameLocation":"13228:11:7","nodeType":"VariableDeclaration","scope":3222,"src":"13218:21:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"},"typeName":{"id":3138,"nodeType":"UserDefinedTypeName","pathNode":{"id":3137,"name":"PopStatus","nameLocations":["13218:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"13218:9:7"},"referencedDeclaration":2036,"src":"13218:9:7","typeDescriptions":{"typeIdentifier":"t_enum$_PopStatus_$2036","typeString":"enum IPopRules.PopStatus"}},"visibility":"internal"},{"constant":false,"id":3141,"mutability":"mutable","name":"message","nameLocation":"13255:7:7","nodeType":"VariableDeclaration","scope":3222,"src":"13241:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3140,"name":"string","nodeType":"ElementaryTypeName","src":"13241:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13217:46:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3237,"nodeType":"FunctionDefinition","src":"14117:166:7","nodes":[],"body":{"id":3236,"nodeType":"Block","src":"14185:98:7","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":3228,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3224,"src":"14203:4:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"id":3229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14208:13:7","memberName":"isSingleLabel","nodeType":"MemberAccess","referencedDeclaration":12835,"src":"14203:18:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$_t_bool_$attached_to$_t_string_calldata_ptr_$","typeString":"function (string calldata) pure returns (bool)"}},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14203:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"4e616d65206d757374206265206c6f7765726361736520415343494920444e53206c6162656c","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14234:40:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_942317715876f4c711cb3996c127435c90bb1398d8db2afbd968656b2e8643d7","typeString":"literal_string \"Name must be lowercase ASCII DNS label\""},"value":"Name must be lowercase ASCII DNS label"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_942317715876f4c711cb3996c127435c90bb1398d8db2afbd968656b2e8643d7","typeString":"literal_string \"Name must be lowercase ASCII DNS label\""}],"id":3231,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"14225:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14225:50:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":3227,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14195:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":3234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14195:81:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3235,"nodeType":"ExpressionStatement","src":"14195:81:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_requireCanonicalLabel","nameLocation":"14126:22:7","parameters":{"id":3225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3224,"mutability":"mutable","name":"name","nameLocation":"14165:4:7","nodeType":"VariableDeclaration","scope":3237,"src":"14149:20:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3223,"name":"string","nodeType":"ElementaryTypeName","src":"14149:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14148:22:7"},"returnParameters":{"id":3226,"nodeType":"ParameterList","parameters":[],"src":"14185:0:7"},"scope":3420,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":3259,"nodeType":"FunctionDefinition","src":"14327:251:7","nodes":[],"body":{"id":3258,"nodeType":"Block","src":"14472:106:7","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":3251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3246,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3240,"src":"14489:11:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":3248,"name":"IPopRules","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"14509:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPopRules_$2195_$","typeString":"type(contract IPopRules)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPopRules_$2195_$","typeString":"type(contract IPopRules)"}],"id":3247,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14504:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14504:15:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPopRules_$2195","typeString":"type(contract IPopRules)"}},"id":3250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14520:11:7","memberName":"interfaceId","nodeType":"MemberAccess","src":"14504:27:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"14489:42:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":3254,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3240,"src":"14559:11:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3252,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"14535:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_PopRules_$3420_$","typeString":"type(contract super PopRules)"}},"id":3253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14541:17:7","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":54753,"src":"14535:23:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":3255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14535:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14489:82:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3245,"id":3257,"nodeType":"Return","src":"14482:89:7"}]},"baseFunctions":[54753],"documentation":{"id":3238,"nodeType":"StructuredDocumentation","src":"14289:33:7","text":"@inheritdoc ERC165Upgradeable"},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"14336:17:7","overrides":{"id":3242,"nodeType":"OverrideSpecifier","overrides":[],"src":"14426:8:7"},"parameters":{"id":3241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3240,"mutability":"mutable","name":"interfaceId","nameLocation":"14361:11:7","nodeType":"VariableDeclaration","scope":3259,"src":"14354:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3239,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14354:6:7","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"14353:20:7"},"returnParameters":{"id":3245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3244,"mutability":"mutable","name":"supported","nameLocation":"14457:9:7","nodeType":"VariableDeclaration","scope":3259,"src":"14452:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3243,"name":"bool","nodeType":"ElementaryTypeName","src":"14452:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14451:16:7"},"scope":3420,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":3269,"nodeType":"FunctionDefinition","src":"14620:84:7","nodes":[],"body":{"id":3268,"nodeType":"Block","src":"14702:2:7","nodes":[],"statements":[]},"baseFunctions":[56249],"documentation":{"id":3260,"nodeType":"StructuredDocumentation","src":"14584:31:7","text":"@inheritdoc UUPSUpgradeable"},"implemented":true,"kind":"function","modifiers":[{"id":3266,"kind":"modifierInvocation","modifierName":{"id":3265,"name":"onlyOwner","nameLocations":["14692:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":53475,"src":"14692:9:7"},"nodeType":"ModifierInvocation","src":"14692:9:7"}],"name":"_authorizeUpgrade","nameLocation":"14629:17:7","overrides":{"id":3264,"nodeType":"OverrideSpecifier","overrides":[],"src":"14683:8:7"},"parameters":{"id":3263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3262,"mutability":"mutable","name":"newImplementation","nameLocation":"14655:17:7","nodeType":"VariableDeclaration","scope":3269,"src":"14647:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3261,"name":"address","nodeType":"ElementaryTypeName","src":"14647:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14646:27:7"},"returnParameters":{"id":3267,"nodeType":"ParameterList","parameters":[],"src":"14702:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":3280,"nodeType":"FunctionDefinition","src":"14758:119:7","nodes":[],"body":{"id":3279,"nodeType":"Block","src":"14837:40:7","nodes":[],"statements":[{"expression":{"id":3277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3275,"name":"versionString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3273,"src":"14847:13:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"312e302e30","id":3276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14863:7:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c","typeString":"literal_string \"1.0.0\""},"value":"1.0.0"},"src":"14847:23:7","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":3278,"nodeType":"ExpressionStatement","src":"14847:23:7"}]},"documentation":{"id":3270,"nodeType":"StructuredDocumentation","src":"14710:43:7","text":"@notice Returns implementation version."},"functionSelector":"54fd4d50","implemented":true,"kind":"function","modifiers":[],"name":"version","nameLocation":"14767:7:7","parameters":{"id":3271,"nodeType":"ParameterList","parameters":[],"src":"14774:2:7"},"returnParameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3273,"mutability":"mutable","name":"versionString","nameLocation":"14822:13:7","nodeType":"VariableDeclaration","scope":3280,"src":"14808:27:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3272,"name":"string","nodeType":"ElementaryTypeName","src":"14808:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14807:29:7"},"scope":3420,"stateMutability":"pure","virtual":true,"visibility":"external"},{"id":3308,"nodeType":"FunctionDefinition","src":"14965:230:7","nodes":[],"body":{"id":3307,"nodeType":"Block","src":"15004:191:7","nodes":[],"statements":[{"assignments":[3286],"declarations":[{"constant":false,"id":3286,"mutability":"mutable","name":"registrar","nameLocation":"15029:9:7","nodeType":"VariableDeclaration","scope":3307,"src":"15014:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DotnsRegistrar_$6098","typeString":"contract DotnsRegistrar"},"typeName":{"id":3285,"nodeType":"UserDefinedTypeName","pathNode":{"id":3284,"name":"DotnsRegistrar","nameLocations":["15014:14:7"],"nodeType":"IdentifierPath","referencedDeclaration":6098,"src":"15014:14:7"},"referencedDeclaration":6098,"src":"15014:14:7","typeDescriptions":{"typeIdentifier":"t_contract$_DotnsRegistrar_$6098","typeString":"contract DotnsRegistrar"}},"visibility":"internal"}],"id":3294,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":3290,"name":"DotnsConstants","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12398,"src":"15077:14:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DotnsConstants_$12398_$","typeString":"type(library DotnsConstants)"}},"id":3291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15092:9:7","memberName":"REGISTRAR","nodeType":"MemberAccess","referencedDeclaration":12320,"src":"15077:24:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":3288,"name":"protocolRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2249,"src":"15056:16:7","typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsProtocolRegistry_$8949","typeString":"contract IDotnsProtocolRegistry"}},"id":3289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15073:3:7","memberName":"get","nodeType":"MemberAccess","referencedDeclaration":8932,"src":"15056:20:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":3292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15056:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3287,"name":"DotnsRegistrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6098,"src":"15041:14:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DotnsRegistrar_$6098_$","typeString":"type(contract DotnsRegistrar)"}},"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15041:62:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_DotnsRegistrar_$6098","typeString":"contract DotnsRegistrar"}},"nodeType":"VariableDeclarationStatement","src":"15014:89:7"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3299,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15160:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15164:6:7","memberName":"sender","nodeType":"MemberAccess","src":"15160:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3298,"name":"IDotnsController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7245,"src":"15143:16:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDotnsController_$7245_$","typeString":"type(contract IDotnsController)"}},"id":3301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15143:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDotnsController_$7245","typeString":"contract IDotnsController"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IDotnsController_$7245","typeString":"contract IDotnsController"}],"expression":{"id":3296,"name":"registrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3286,"src":"15121:9:7","typeDescriptions":{"typeIdentifier":"t_contract$_DotnsRegistrar_$6098","typeString":"contract DotnsRegistrar"}},"id":3297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15131:11:7","memberName":"controllers","nodeType":"MemberAccess","referencedDeclaration":5038,"src":"15121:21:7","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IDotnsController_$7245_$returns$_t_bool_$","typeString":"function (contract IDotnsController) view external returns (bool)"}},"id":3302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15121:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":3303,"name":"NotRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"15174:11:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15174:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":3295,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15113:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15113:75:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3306,"nodeType":"ExpressionStatement","src":"15113:75:7"}]},"documentation":{"id":3281,"nodeType":"StructuredDocumentation","src":"14883:77:7","text":"@notice Ensures the caller is any controller authorised on the registrar."},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRegistry","nameLocation":"14974:13:7","parameters":{"id":3282,"nodeType":"ParameterList","parameters":[],"src":"14987:2:7"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[],"src":"15004:0:7"},"scope":3420,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":3373,"nodeType":"FunctionDefinition","src":"15231:1262:7","nodes":[],"body":{"id":3372,"nodeType":"Block","src":"15390:1103:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":3320,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"15423:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3319,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"15400:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15400:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3322,"nodeType":"ExpressionStatement","src":"15400:32:7"},{"assignments":[3325],"declarations":[{"constant":false,"id":3325,"mutability":"mutable","name":"existing","nameLocation":"15462:8:7","nodeType":"VariableDeclaration","scope":3372,"src":"15443:27:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":3324,"nodeType":"UserDefinedTypeName","pathNode":{"id":3323,"name":"Reservation","nameLocations":["15443:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"15443:11:7"},"referencedDeclaration":2080,"src":"15443:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":3329,"initialValue":{"baseExpression":{"id":3326,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"15473:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":3328,"indexExpression":{"id":3327,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"15486:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15473:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15443:52:7"},{"condition":{"arguments":[{"id":3331,"name":"existing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"15517:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}],"id":3330,"name":"_isLive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"15509:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Reservation_$2080_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IPopRules.Reservation memory) view returns (bool)"}},"id":3332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15509:17:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3344,"nodeType":"IfStatement","src":"15505:531:7","trueBody":{"id":3343,"nodeType":"Block","src":"15528:508:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3334,"name":"existing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3325,"src":"15951:8:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":3335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15960:5:7","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2075,"src":"15951:14:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3336,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"15969:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15951:29:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"42617365206e616d652068656c6420627920616e6f746865722075736572","id":3339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15991:32:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebd091e844a24eb80c0f1571463a6696b270fed2885ae0630db6271cee3e1f13","typeString":"literal_string \"Base name held by another user\""},"value":"Base name held by another user"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebd091e844a24eb80c0f1571463a6696b270fed2885ae0630db6271cee3e1f13","typeString":"literal_string \"Base name held by another user\""}],"id":3338,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"15982:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15982:42:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":3333,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15943:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":3341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15943:82:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3342,"nodeType":"ExpressionStatement","src":"15943:82:7"}]}},{"assignments":[3346],"declarations":[{"constant":false,"id":3346,"mutability":"mutable","name":"expiryTime","nameLocation":"16236:10:7","nodeType":"VariableDeclaration","scope":3372,"src":"16229:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":3345,"name":"uint64","nodeType":"ElementaryTypeName","src":"16229:6:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":3354,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3349,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"16256:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16262:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"16256:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3351,"name":"MAX_RESERVATION_TIME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"16274:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16256:38:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16249:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":3347,"name":"uint64","nodeType":"ElementaryTypeName","src":"16249:6:7","typeDescriptions":{}}},"id":3353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16249:46:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"16229:66:7"},{"expression":{"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3355,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"16305:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":3357,"indexExpression":{"id":3356,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"16318:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16305:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3359,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"16362:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3360,"name":"expiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"16384:10:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"expression":{"id":3361,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16408:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16412:6:7","memberName":"sender","nodeType":"MemberAccess","src":"16408:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3358,"name":"Reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"16342:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Reservation_$2080_storage_ptr_$","typeString":"type(struct IPopRules.Reservation storage pointer)"}},"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16355:5:7","16375:7:7","16396:10:7"],"names":["owner","expires","controller"],"nodeType":"FunctionCall","src":"16342:78:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"src":"16305:115:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"id":3365,"nodeType":"ExpressionStatement","src":"16305:115:7"},{"eventCall":{"arguments":[{"id":3367,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"16452:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"id":3368,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3313,"src":"16462:11:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3369,"name":"expiryTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"16475:10:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":3366,"name":"BaseNameReserved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2045,"src":"16435:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_uint64_$returns$__$","typeString":"function (string memory,address,uint64)"}},"id":3370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16435:51:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3371,"nodeType":"EmitStatement","src":"16430:56:7"}]},"baseFunctions":[2118],"documentation":{"id":3309,"nodeType":"StructuredDocumentation","src":"15201:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"2b0282ae","implemented":true,"kind":"function","modifiers":[{"id":3317,"kind":"modifierInvocation","modifierName":{"id":3316,"name":"onlyRegistry","nameLocations":["15373:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":2261,"src":"15373:12:7"},"nodeType":"ModifierInvocation","src":"15373:12:7"}],"name":"reserveBaseNameForPop","nameLocation":"15240:21:7","overrides":{"id":3315,"nodeType":"OverrideSpecifier","overrides":[],"src":"15356:8:7"},"parameters":{"id":3314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3311,"mutability":"mutable","name":"baseName","nameLocation":"15287:8:7","nodeType":"VariableDeclaration","scope":3373,"src":"15271:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3310,"name":"string","nodeType":"ElementaryTypeName","src":"15271:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3313,"mutability":"mutable","name":"userAddress","nameLocation":"15313:11:7","nodeType":"VariableDeclaration","scope":3373,"src":"15305:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3312,"name":"address","nodeType":"ElementaryTypeName","src":"15305:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15261:69:7"},"returnParameters":{"id":3318,"nodeType":"ParameterList","parameters":[],"src":"15390:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3419,"nodeType":"FunctionDefinition","src":"16529:777:7","nodes":[],"body":{"id":3418,"nodeType":"Block","src":"16611:695:7","nodes":[],"statements":[{"expression":{"arguments":[{"id":3383,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"16644:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3382,"name":"_requireCanonicalLabel","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3237,"src":"16621:22:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_calldata_ptr_$returns$__$","typeString":"function (string calldata) pure"}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16621:32:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3385,"nodeType":"ExpressionStatement","src":"16621:32:7"},{"assignments":[3388],"declarations":[{"constant":false,"id":3388,"mutability":"mutable","name":"reservation","nameLocation":"16682:11:7","nodeType":"VariableDeclaration","scope":3418,"src":"16663:30:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation"},"typeName":{"id":3387,"nodeType":"UserDefinedTypeName","pathNode":{"id":3386,"name":"Reservation","nameLocations":["16663:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":2080,"src":"16663:11:7"},"referencedDeclaration":2080,"src":"16663:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage_ptr","typeString":"struct IPopRules.Reservation"}},"visibility":"internal"}],"id":3392,"initialValue":{"baseExpression":{"id":3389,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"16696:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":3391,"indexExpression":{"id":3390,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"16709:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16696:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16663:55:7"},{"condition":{"arguments":[{"id":3394,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3388,"src":"17039:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}],"id":3393,"name":"_isLive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3001,"src":"17031:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Reservation_$2080_memory_ptr_$returns$_t_bool_$","typeString":"function (struct IPopRules.Reservation memory) view returns (bool)"}},"id":3395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17031:20:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3408,"nodeType":"IfStatement","src":"17027:193:7","trueBody":{"id":3407,"nodeType":"Block","src":"17053:167:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3397,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17092:3:7","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17096:6:7","memberName":"sender","nodeType":"MemberAccess","src":"17092:10:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3399,"name":"reservation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3388,"src":"17106:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_memory_ptr","typeString":"struct IPopRules.Reservation memory"}},"id":3400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17118:10:7","memberName":"controller","nodeType":"MemberAccess","referencedDeclaration":2079,"src":"17106:22:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17092:36:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[{"hexValue":"4f6e6c7920726573657276696e6720636f6e74726f6c6c65722063616e2072656c65617365","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17155:39:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_163b694623048e733106fb52ae00f126e3917ddf6c89415a11e6986321cf54b4","typeString":"literal_string \"Only reserving controller can release\""},"value":"Only reserving controller can release"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_163b694623048e733106fb52ae00f126e3917ddf6c89415a11e6986321cf54b4","typeString":"literal_string \"Only reserving controller can release\""}],"id":3402,"name":"PopError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"17146:8:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17146:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":3396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17067:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":3405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17067:142:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3406,"nodeType":"ExpressionStatement","src":"17067:142:7"}]}},{"expression":{"id":3412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17229:29:7","subExpression":{"baseExpression":{"id":3409,"name":"reservations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2241,"src":"17236:12:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_Reservation_$2080_storage_$","typeString":"mapping(string memory => struct IPopRules.Reservation storage ref)"}},"id":3411,"indexExpression":{"id":3410,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"17249:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17236:22:7","typeDescriptions":{"typeIdentifier":"t_struct$_Reservation_$2080_storage","typeString":"struct IPopRules.Reservation storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3413,"nodeType":"ExpressionStatement","src":"17229:29:7"},{"eventCall":{"arguments":[{"id":3415,"name":"baseName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3376,"src":"17290:8:7","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":3414,"name":"BaseNameReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"17273:16:7","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":3416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17273:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3417,"nodeType":"EmitStatement","src":"17268:31:7"}]},"baseFunctions":[2124],"documentation":{"id":3374,"nodeType":"StructuredDocumentation","src":"16499:25:7","text":"@inheritdoc IPopRules"},"functionSelector":"dbc13dda","implemented":true,"kind":"function","modifiers":[{"id":3380,"kind":"modifierInvocation","modifierName":{"id":3379,"name":"onlyRegistry","nameLocations":["16598:12:7"],"nodeType":"IdentifierPath","referencedDeclaration":2261,"src":"16598:12:7"},"nodeType":"ModifierInvocation","src":"16598:12:7"}],"name":"releaseBaseName","nameLocation":"16538:15:7","overrides":{"id":3378,"nodeType":"OverrideSpecifier","overrides":[],"src":"16589:8:7"},"parameters":{"id":3377,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3376,"mutability":"mutable","name":"baseName","nameLocation":"16570:8:7","nodeType":"VariableDeclaration","scope":3419,"src":"16554:24:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3375,"name":"string","nodeType":"ElementaryTypeName","src":"16554:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16553:26:7"},"returnParameters":{"id":3381,"nodeType":"ParameterList","parameters":[],"src":"16611:0:7"},"scope":3420,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":2221,"name":"Initializable","nameLocations":["1102:13:7"],"nodeType":"IdentifierPath","referencedDeclaration":56129,"src":"1102:13:7"},"id":2222,"nodeType":"InheritanceSpecifier","src":"1102:13:7"},{"baseName":{"id":2223,"name":"UUPSUpgradeable","nameLocations":["1121:15:7"],"nodeType":"IdentifierPath","referencedDeclaration":56295,"src":"1121:15:7"},"id":2224,"nodeType":"InheritanceSpecifier","src":"1121:15:7"},{"baseName":{"id":2225,"name":"OwnableUpgradeable","nameLocations":["1142:18:7"],"nodeType":"IdentifierPath","referencedDeclaration":53580,"src":"1142:18:7"},"id":2226,"nodeType":"InheritanceSpecifier","src":"1142:18:7"},{"baseName":{"id":2227,"name":"ERC165Upgradeable","nameLocations":["1166:17:7"],"nodeType":"IdentifierPath","referencedDeclaration":54754,"src":"1166:17:7"},"id":2228,"nodeType":"InheritanceSpecifier","src":"1166:17:7"},{"baseName":{"id":2229,"name":"IPopRules","nameLocations":["1189:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":2195,"src":"1189:9:7"},"id":2230,"nodeType":"InheritanceSpecifier","src":"1189:9:7"}],"canonicalName":"PopRules","contractDependencies":[],"contractKind":"contract","documentation":{"id":2220,"nodeType":"StructuredDocumentation","src":"922:155:7","text":"@title PopRules\n @notice Implements DotNS pricing with PoP-tier validation and base-name reservations.\n @custom:security-contact admin@parity.io"},"fullyImplemented":true,"linearizedBaseContracts":[3420,2195,54754,60790,53580,54714,56295,56129,55016],"name":"PopRules","nameLocation":"1086:8:7","scope":3421,"usedErrors":[2057,2060,53416,53421,55211,55224,55878,55881,56152,56157,57504,58638],"usedEvents":[2045,2052,2110,53427,54993,55886]}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/packages/cli/package.json b/packages/cli/package.json index 8200d39..ad964fa 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,7 +1,7 @@ { "name": "@parity/dotns-cli", "module": "index.ts", - "version": "0.6.0", + "version": "0.6.2", "type": "module", "private": true, "packageManager": "bun@1.2.6", diff --git a/packages/cli/src/cli/commands/authOptions.ts b/packages/cli/src/cli/commands/authOptions.ts index f3147e4..fab8245 100644 --- a/packages/cli/src/cli/commands/authOptions.ts +++ b/packages/cli/src/cli/commands/authOptions.ts @@ -4,6 +4,8 @@ import type { AuthOptionValues } from "../../types/types"; export function addAuthOptions(cmd: Command): Command { return cmd + .option("--env ", `DotNS environment: paseo-v2 (env: ${ENV.DOTNS_ENV})`) + .option("--network ", "Alias for --env") .option("--rpc ", `WebSocket RPC endpoint (env: ${ENV.RPC})`) .option("--keystore-path ", `Keystore path (env: ${ENV.KEYSTORE_PATH})`) .option("--min-balance ", `Minimum balance in PAS (env: ${ENV.MIN_BALANCE_PAS})`) diff --git a/packages/cli/src/cli/commands/info.ts b/packages/cli/src/cli/commands/info.ts index ca95615..9974867 100644 --- a/packages/cli/src/cli/commands/info.ts +++ b/packages/cli/src/cli/commands/info.ts @@ -58,7 +58,8 @@ export function attachAccountCommands(root: Command) { try { const mergedOptions = getMergedOptions(command, options); - const rpc = resolveRpc(mergedOptions.rpc); + const environment = mergedOptions.env ?? mergedOptions.network; + const rpc = resolveRpc(mergedOptions.rpc, environment); const keystorePath = resolveKeystorePath(mergedOptions.keystorePath); const client = await step(`Connecting RPC ${rpc}`, async () => @@ -90,6 +91,8 @@ export function attachAccountCommands(root: Command) { client as PolkadotApiClient, evmAddress, context.substrateAddress, + context.nativeTokenDecimals, + context.nativeTokenSymbol, ); console.log(chalk.green("\n✓ Complete\n")); @@ -108,7 +111,8 @@ export function attachAccountCommands(root: Command) { try { const mergedOptions = getMergedOptions(command, options); - const rpc = resolveRpc(mergedOptions.rpc); + const environment = mergedOptions.env ?? mergedOptions.network; + const rpc = resolveRpc(mergedOptions.rpc, environment); const client = await step(`Connecting RPC ${rpc}`, async () => createClient(getWsProvider(rpc)).getTypedApi(paseo), diff --git a/packages/cli/src/cli/commands/lookup.ts b/packages/cli/src/cli/commands/lookup.ts index 0193140..d787176 100644 --- a/packages/cli/src/cli/commands/lookup.ts +++ b/packages/cli/src/cli/commands/lookup.ts @@ -7,7 +7,7 @@ import { paseo } from "@polkadot-api/descriptors"; import { ReviveClientWrapper, type PolkadotApiClient } from "../../client/polkadotClient"; import { performDomainLookup, performOwnerOfLookup } from "../../commands/lookup"; import { verifyDomainOwnership } from "../../commands/register"; -import { resolveRpc } from "../env"; +import { resolveDotnsEnvironment, resolveRpc } from "../env"; import { formatErrorMessage } from "../../utils/formatting"; import { resolveAuthSourceReadOnly, @@ -17,7 +17,7 @@ import { } from "../../commands/auth"; import { addAuthOptions, getAuthOptions } from "./authOptions"; import { step } from "../ui"; -import { prepareAssetHubContext } from "../context"; +import { getChainTokenInfo, prepareAssetHubContext } from "../context"; import { resolveTransferRecipient, transferDomain } from "../transfer"; import { classifyTransferDestination, isValidTransferDestination } from "./register"; import type { @@ -29,9 +29,14 @@ import type { import { getJsonFlag, maybeQuiet } from "./jsonHelpers"; import type { Address } from "viem"; -function createClientWrapper(rpc: string) { - const client = createClient(getWsProvider(rpc)).getTypedApi(paseo); - return new ReviveClientWrapper(client as PolkadotApiClient); +async function createReadOnlyChainContext(rpc: string) { + const rawClient = createClient(getWsProvider(rpc)); + const client = rawClient.getTypedApi(paseo); + const tokenInfo = await getChainTokenInfo(rawClient); + return { + clientWrapper: new ReviveClientWrapper(client as PolkadotApiClient), + ...tokenInfo, + }; } function hasAnyAuthHint(opts: AuthSource): boolean { @@ -59,9 +64,13 @@ function withReadOnlyPasswordFallback(opts: T): T { export async function prepareReadOnlyContext( options: AuthSource & { rpc?: string }, ): Promise { - const rpc = resolveRpc(options.rpc); + const environment = resolveDotnsEnvironment(options.env ?? options.network); + const rpc = resolveRpc(options.rpc, environment.id); - const clientWrapper = await step(`Connecting RPC ${rpc}`, async () => createClientWrapper(rpc)); + const readOnlyContext = await step(`Connecting RPC ${rpc}`, async () => + createReadOnlyChainContext(rpc), + ); + const { clientWrapper, nativeTokenDecimals, nativeTokenSymbol } = readOnlyContext; const auth = await step("Resolving read-only account", async () => { if (hasAnyAuthHint(options)) { @@ -94,9 +103,22 @@ export async function prepareReadOnlyContext( ); console.log(chalk.gray("\n RPC: ") + chalk.white(rpc)); + console.log(chalk.gray(" Env: ") + chalk.white(environment.label)); + console.log( + chalk.gray(" Token: ") + + chalk.white(`${nativeTokenSymbol} (${nativeTokenDecimals} decimals)`), + ); console.log(chalk.gray(" Account: ") + chalk.white(keypair.address)); - return { clientWrapper, account: { address: keypair.address }, rpc, evmAddress }; + return { + clientWrapper, + account: { address: keypair.address }, + rpc, + environment: environment.id, + nativeTokenDecimals, + nativeTokenSymbol, + evmAddress, + }; } export async function ensureAccountMappedWhenAuthenticated( @@ -170,14 +192,21 @@ export function attachLookupCommands(root: Command): void { process.exit(1); } - const { clientWrapper, account } = await maybeQuiet(jsonOutput, () => - prepareReadOnlyContext(merged), + const { clientWrapper, account, nativeTokenDecimals, nativeTokenSymbol } = await maybeQuiet( + jsonOutput, + () => prepareReadOnlyContext(merged), ); if (!jsonOutput) console.log(chalk.bold("\n▶ Domain Lookup\n")); const result = await maybeQuiet(jsonOutput, () => - performDomainLookup(label, account.address, clientWrapper), + performDomainLookup( + label, + account.address, + clientWrapper, + nativeTokenDecimals, + nativeTokenSymbol, + ), ); if (jsonOutput) { @@ -214,14 +243,19 @@ export function attachLookupCommands(root: Command): void { const merged = { ...(options ?? {}), ...getAuthOptions(cmd) } as LookupActionOptions; const jsonOutput = getJsonFlag(cmd); - const { clientWrapper, account } = await maybeQuiet(jsonOutput, () => - prepareReadOnlyContext(merged), - ); + const { clientWrapper, account, nativeTokenDecimals, nativeTokenSymbol } = + await maybeQuiet(jsonOutput, () => prepareReadOnlyContext(merged)); if (!jsonOutput) console.log(chalk.bold("\n▶ Domain Lookup\n")); const result = await maybeQuiet(jsonOutput, () => - performDomainLookup(merged.name as string, account.address, clientWrapper), + performDomainLookup( + merged.name as string, + account.address, + clientWrapper, + nativeTokenDecimals, + nativeTokenSymbol, + ), ); if (jsonOutput) { diff --git a/packages/cli/src/cli/commands/pop.ts b/packages/cli/src/cli/commands/pop.ts index bd8d234..ba6944c 100644 --- a/packages/cli/src/cli/commands/pop.ts +++ b/packages/cli/src/cli/commands/pop.ts @@ -1,11 +1,6 @@ import { Command } from "commander"; import chalk from "chalk"; -import { - getUserProofOfPersonhoodStatus, - setUserProofOfPersonhoodStatus, -} from "../../commands/register"; -import { parseProofOfPersonhoodStatus } from "../labels"; -import { prepareContext } from "../context"; +import { getUserProofOfPersonhoodStatus } from "../../commands/register"; import { addAuthOptions } from "./authOptions"; import type { CommandOptions } from "../../types/types"; import { ProofOfPersonhoodStatus } from "../../types/types"; @@ -25,6 +20,20 @@ export type PopInfoResult = { status: ProofOfPersonhoodStatus; }; +function formatPopStatus(status: ProofOfPersonhoodStatus): "none" | "lite" | "full" | "reserved" { + switch (status) { + case ProofOfPersonhoodStatus.ProofOfPersonhoodLite: + return "lite"; + case ProofOfPersonhoodStatus.ProofOfPersonhoodFull: + return "full"; + case ProofOfPersonhoodStatus.Reserved: + return "reserved"; + case ProofOfPersonhoodStatus.NoStatus: + default: + return "none"; + } +} + async function readPopInfo(options: CommandOptions): Promise { const context = await prepareReadOnlyContext(options as any); const status = await getUserProofOfPersonhoodStatus( @@ -41,54 +50,14 @@ async function readPopInfo(options: CommandOptions): Promise { } export function attachPopCommands(root: Command): void { - const popCommand = root.command("pop").description("ProofOfPersonhood status management"); + const popCommand = root.command("pop").description("ProofOfPersonhood status lookup"); addAuthOptions(popCommand); - const setPopCommand = popCommand - .command("set ") - .description("Set ProofOfPersonhood status (none, lite, or full)") - .option("--json", "Output result as JSON (suppresses all other output)", false); - - addAuthOptions(setPopCommand).action( - async (status: string, options: CommandOptions, command: Command) => { - const jsonOutput = getJsonFlag(command); - try { - const mergedOptions = getMergedOptions(command, options); - const context = await maybeQuiet(jsonOutput, () => prepareContext(mergedOptions)); - - const parsedStatus = parseProofOfPersonhoodStatus(status); - - await maybeQuiet(jsonOutput, () => - setUserProofOfPersonhoodStatus( - context.clientWrapper!, - context.substrateAddress, - context.signer, - context.evmAddress!, - "", - parsedStatus, - ), - ); - - if ( - !emitJsonResult(jsonOutput, { - ok: true, - status: ProofOfPersonhoodStatus[parsedStatus].toLowerCase(), - statusCode: parsedStatus, - }) - ) { - console.log(chalk.green("\n✓ PoP Status Updated\n")); - } - process.exit(0); - } catch (error) { - handleCommandError(jsonOutput, error); - } - }, - ); - const infoCommand = popCommand .command("info") - .description("Display ProofOfPersonhood status") + .alias("status") + .description("Display ProofOfPersonhood status from the personhood precompile") .option("--json", "Output result as JSON (suppresses all other output)", false); addAuthOptions(infoCommand).action(async (options: CommandOptions, command: Command) => { @@ -101,16 +70,14 @@ export function attachPopCommands(root: Command): void { !emitJsonResult(jsonOutput, { substrate: info.substrate, evm: info.evm, - status: ProofOfPersonhoodStatus[info.status].toLowerCase(), + status: formatPopStatus(info.status), statusCode: info.status, }) ) { console.log(chalk.bold("\n📋 ProofOfPersonhood Status\n")); console.log(chalk.gray(" substrate: ") + chalk.white(info.substrate)); console.log(chalk.gray(" evm: ") + chalk.white(info.evm)); - console.log( - chalk.gray(" status: ") + chalk.white(ProofOfPersonhoodStatus[info.status]), - ); + console.log(chalk.gray(" status: ") + chalk.white(formatPopStatus(info.status))); console.log(chalk.green("\n✓ PoP Status Retrieved\n")); } diff --git a/packages/cli/src/cli/commands/register.ts b/packages/cli/src/cli/commands/register.ts index 13e964c..cf89489 100644 --- a/packages/cli/src/cli/commands/register.ts +++ b/packages/cli/src/cli/commands/register.ts @@ -13,7 +13,6 @@ import { verifyDomainOwnership, displayDeployedStore, ensureStoreAuthorizations, - setUserProofOfPersonhoodStatus, } from "../../commands/register"; import { isValidSubstrateAddress, @@ -28,17 +27,12 @@ import { } from "../../types/types"; import { step } from "../ui"; import { prepareAssetHubContext } from "../context"; -import { generateRandomLabel, parseProofOfPersonhoodStatus } from "../labels"; +import { generateRandomLabel } from "../labels"; import { resolveTransferRecipient, transferDomain } from "../transfer"; export type TransferDestinationKind = "evm" | "substrate" | "label"; -export type RegistrationPopStatusConfig = - | { mode: "unchanged" } - | { mode: "set"; status: ProofOfPersonhoodStatus }; - export type RegisterActionOptions = RegistrationCommandOptions & { - __statusProvided?: boolean; transfer?: boolean; to?: string; parent?: string; @@ -114,17 +108,7 @@ export async function executeRegistration( const context = await prepareAssetHubContext(options); const { clientWrapper, substrateAddress, signer, evmAddress } = context; - const statusWasProvided = options.__statusProvided === true; - - const popStatusConfig: RegistrationPopStatusConfig = statusWasProvided - ? { mode: "set", status: parseProofOfPersonhoodStatus(options.status ?? "none") } - : { mode: "unchanged" }; - - const label = - options.name ?? - generateRandomLabel( - popStatusConfig.mode === "set" ? popStatusConfig.status : ProofOfPersonhoodStatus.NoStatus, - ); + const label = options.name ?? generateRandomLabel(ProofOfPersonhoodStatus.NoStatus); console.log( chalk.gray(" Mode: ") + @@ -158,7 +142,7 @@ export async function executeRegistration( signer, evmAddress, label, - popStatusConfig, + context.nativeTokenDecimals, options.reverse ?? false, transferDestination, options.commitmentBuffer, @@ -301,7 +285,7 @@ async function executeRegularRegistration( signer: any, evmAddress: Address, label: string, - popStatusConfig: RegistrationPopStatusConfig, + nativeTokenDecimals: number, enableReverseRecord: boolean, transferDestination: string | undefined, commitmentBuffer?: number, @@ -314,19 +298,6 @@ async function executeRegularRegistration( classifyDomainName(clientWrapper, substrateAddress, label), ); - if (popStatusConfig.mode === "set") { - await step("Setting PoP status", async () => - setUserProofOfPersonhoodStatus( - clientWrapper, - substrateAddress, - signer, - evmAddress, - label, - popStatusConfig.status, - ), - ); - } - await step("Checking availability", async () => ensureDomainNotRegistered(clientWrapper, substrateAddress, label), ); @@ -354,6 +325,7 @@ async function executeRegularRegistration( signer, registration, pricing.priceWei, + nativeTokenDecimals, ), ); diff --git a/packages/cli/src/cli/commands/registerCommand.ts b/packages/cli/src/cli/commands/registerCommand.ts index 11e6109..1bcc0ff 100644 --- a/packages/cli/src/cli/commands/registerCommand.ts +++ b/packages/cli/src/cli/commands/registerCommand.ts @@ -6,7 +6,6 @@ import { DEFAULT_COMMITMENT_BUFFER_SECONDS } from "../../utils/constants"; import { getJsonFlag, maybeQuiet, emitJsonResult, handleCommandError } from "./jsonHelpers"; export type RegisterActionOptions = RegistrationCommandOptions & { - __statusProvided?: boolean; transfer?: boolean; to?: string; parent?: string; @@ -30,7 +29,6 @@ export function attachRegisterCommand(root: Command) { .command("domain") .description("Register a new base domain") .option("-n, --name