{
  "attributes":
  {
    "absolutePath": "a",
    "exportedSymbols":
    {
      "C":
      [
        12
      ]
    }
  },
  "children":
  [
    {
      "attributes":
      {
        "abstract": false,
        "baseContracts":
        [
          null
        ],
        "contractDependencies":
        [
          null
        ],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts":
        [
          12
        ],
        "name": "C",
        "scope": 13
      },
      "children":
      [
        {
          "attributes":
          {
            "canonicalName": "C.S",
            "name": "S",
            "scope": 12,
            "visibility": "public"
          },
          "children":
          [
            {
              "attributes":
              {
                "constant": false,
                "mutability": "mutable",
                "name": "x",
                "scope": 3,
                "stateVariable": false,
                "storageLocation": "default",
                "type": "uint256",
                "visibility": "internal"
              },
              "children":
              [
                {
                  "attributes":
                  {
                    "name": "uint",
                    "type": "uint256"
                  },
                  "id": 1,
                  "name": "ElementaryTypeName",
                  "src": "28:4:1"
                }
              ],
              "id": 2,
              "name": "VariableDeclaration",
              "src": "28:6:1"
            }
          ],
          "id": 3,
          "name": "StructDefinition",
          "src": "17:20:1"
        },
        {
          "attributes":
          {
            "constant": false,
            "mutability": "mutable",
            "name": "s",
            "scope": 12,
            "stateVariable": true,
            "storageLocation": "default",
            "type": "struct C.S",
            "visibility": "internal"
          },
          "children":
          [
            {
              "attributes":
              {
                "referencedDeclaration": 3,
                "type": "struct C.S"
              },
              "children":
              [
                {
                  "attributes":
                  {
                    "name": "S",
                    "referencedDeclaration": 3
                  },
                  "id": 4,
                  "name": "IdentifierPath",
                  "src": "42:1:1"
                }
              ],
              "id": 5,
              "name": "UserDefinedTypeName",
              "src": "42:1:1"
            }
          ],
          "id": 6,
          "name": "VariableDeclaration",
          "src": "42:3:1"
        },
        {
          "attributes":
          {
            "functionSelector": "ffae15ba",
            "implemented": true,
            "isConstructor": false,
            "kind": "function",
            "modifiers":
            [
              null
            ],
            "name": "e",
            "scope": 12,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          "children":
          [
            {
              "attributes":
              {
                "parameters":
                [
                  null
                ]
              },
              "children": [],
              "id": 7,
              "name": "ParameterList",
              "src": "61:2:1"
            },
            {
              "attributes":
              {
                "parameters":
                [
                  null
                ]
              },
              "children": [],
              "id": 8,
              "name": "ParameterList",
              "src": "76:0:1"
            },
            {
              "children":
              [
                {
                  "attributes":
                  {
                    "evmVersion": %EVMVERSION%,
                    "externalReferences":
                    [
                      {
                        "declaration": 6,
                        "isOffset": true,
                        "isSlot": false,
                        "src": "106:8:1",
                        "suffix": "offset",
                        "valueSize": 1
                      },
                      {
                        "declaration": 6,
                        "isOffset": false,
                        "isSlot": true,
                        "src": "128:6:1",
                        "suffix": "slot",
                        "valueSize": 1
                      }
                    ],
                    "operations": "{\n    let x := s.offset\n    let y := mul(s.slot, 2)\n}"
                  },
                  "children": [],
                  "id": 9,
                  "name": "InlineAssembly",
                  "src": "86:54:1"
                }
              ],
              "id": 10,
              "name": "Block",
              "src": "76:70:1"
            }
          ],
          "id": 11,
          "name": "FunctionDefinition",
          "src": "51:95:1"
        }
      ],
      "id": 12,
      "name": "ContractDefinition",
      "src": "0:148:1"
    }
  ],
  "id": 13,
  "name": "SourceUnit",
  "src": "0:149:1"
}
