{
  "type": "File",
  "start": 0,
  "end": 4147,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 120,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 4147,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 120,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ImportDeclaration",
        "start": 0,
        "end": 31,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 31
          }
        },
        "specifiers": [
          {
            "type": "ImportNamespaceSpecifier",
            "start": 7,
            "end": 17,
            "loc": {
              "start": {
                "line": 1,
                "column": 7
              },
              "end": {
                "line": 1,
                "column": 17
              }
            },
            "local": {
              "type": "Identifier",
              "start": 12,
              "end": 17,
              "loc": {
                "start": {
                  "line": 1,
                  "column": 12
                },
                "end": {
                  "line": 1,
                  "column": 17
                },
                "identifierName": "THREE"
              },
              "name": "THREE"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 23,
          "end": 30,
          "loc": {
            "start": {
              "line": 1,
              "column": 23
            },
            "end": {
              "line": 1,
              "column": 30
            }
          },
          "extra": {
            "rawValue": "three",
            "raw": "'three'"
          },
          "value": "three"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 32,
        "end": 77,
        "loc": {
          "start": {
            "line": 2,
            "column": 0
          },
          "end": {
            "line": 2,
            "column": 45
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 39,
            "end": 46,
            "loc": {
              "start": {
                "line": 2,
                "column": 7
              },
              "end": {
                "line": 2,
                "column": 14
              }
            },
            "local": {
              "type": "Identifier",
              "start": 39,
              "end": 46,
              "loc": {
                "start": {
                  "line": 2,
                  "column": 7
                },
                "end": {
                  "line": 2,
                  "column": 14
                },
                "identifierName": "Object3"
              },
              "name": "Object3"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 52,
          "end": 76,
          "loc": {
            "start": {
              "line": 2,
              "column": 20
            },
            "end": {
              "line": 2,
              "column": 44
            }
          },
          "extra": {
            "rawValue": "../../../three/object3",
            "raw": "'../../../three/object3'"
          },
          "value": "../../../three/object3"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 78,
        "end": 107,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 3,
            "column": 29
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 85,
            "end": 90,
            "loc": {
              "start": {
                "line": 3,
                "column": 7
              },
              "end": {
                "line": 3,
                "column": 12
              }
            },
            "local": {
              "type": "Identifier",
              "start": 85,
              "end": 90,
              "loc": {
                "start": {
                  "line": 3,
                  "column": 7
                },
                "end": {
                  "line": 3,
                  "column": 12
                },
                "identifierName": "Ccref"
              },
              "name": "Ccref"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 96,
          "end": 106,
          "loc": {
            "start": {
              "line": 3,
              "column": 18
            },
            "end": {
              "line": 3,
              "column": 28
            }
          },
          "extra": {
            "rawValue": "../ccref",
            "raw": "'../ccref'"
          },
          "value": "../ccref"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 108,
        "end": 152,
        "loc": {
          "start": {
            "line": 4,
            "column": 0
          },
          "end": {
            "line": 4,
            "column": 44
          }
        },
        "specifiers": [
          {
            "type": "ImportSpecifier",
            "start": 117,
            "end": 129,
            "loc": {
              "start": {
                "line": 4,
                "column": 9
              },
              "end": {
                "line": 4,
                "column": 21
              }
            },
            "imported": {
              "type": "Identifier",
              "start": 117,
              "end": 129,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 9
                },
                "end": {
                  "line": 4,
                  "column": 21
                },
                "identifierName": "getArcAngles"
              },
              "name": "getArcAngles"
            },
            "local": {
              "type": "Identifier",
              "start": 117,
              "end": 129,
              "loc": {
                "start": {
                  "line": 4,
                  "column": 9
                },
                "end": {
                  "line": 4,
                  "column": 21
                },
                "identifierName": "getArcAngles"
              },
              "name": "getArcAngles"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 137,
          "end": 151,
          "loc": {
            "start": {
              "line": 4,
              "column": 29
            },
            "end": {
              "line": 4,
              "column": 43
            }
          },
          "extra": {
            "rawValue": "../geomutils",
            "raw": "'../geomutils'"
          },
          "value": "../geomutils"
        }
      },
      {
        "type": "ImportDeclaration",
        "start": 153,
        "end": 209,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 56
          }
        },
        "specifiers": [
          {
            "type": "ImportDefaultSpecifier",
            "start": 160,
            "end": 178,
            "loc": {
              "start": {
                "line": 5,
                "column": 7
              },
              "end": {
                "line": 5,
                "column": 25
              }
            },
            "local": {
              "type": "Identifier",
              "start": 160,
              "end": 178,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 7
                },
                "end": {
                  "line": 5,
                  "column": 25
                },
                "identifierName": "ConstraintGraphics"
              },
              "name": "ConstraintGraphics"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 184,
          "end": 208,
          "loc": {
            "start": {
              "line": 5,
              "column": 31
            },
            "end": {
              "line": 5,
              "column": 55
            }
          },
          "extra": {
            "rawValue": "../graphics/constraint",
            "raw": "'../graphics/constraint'"
          },
          "value": "../graphics/constraint"
        }
      },
      {
        "type": "VariableDeclaration",
        "start": 211,
        "end": 286,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 11,
            "column": 3
          }
        },
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start": 217,
            "end": 285,
            "loc": {
              "start": {
                "line": 7,
                "column": 6
              },
              "end": {
                "line": 11,
                "column": 2
              }
            },
            "id": {
              "type": "Identifier",
              "start": 217,
              "end": 221,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 6
                },
                "end": {
                  "line": 7,
                  "column": 10
                },
                "identifierName": "Mode"
              },
              "name": "Mode"
            },
            "init": {
              "type": "CallExpression",
              "start": 224,
              "end": 285,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 13
                },
                "end": {
                  "line": 11,
                  "column": 2
                }
              },
              "callee": {
                "type": "MemberExpression",
                "start": 224,
                "end": 237,
                "loc": {
                  "start": {
                    "line": 7,
                    "column": 13
                  },
                  "end": {
                    "line": 7,
                    "column": 26
                  }
                },
                "object": {
                  "type": "Identifier",
                  "start": 224,
                  "end": 230,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 13
                    },
                    "end": {
                      "line": 7,
                      "column": 19
                    },
                    "identifierName": "Object"
                  },
                  "name": "Object"
                },
                "property": {
                  "type": "Identifier",
                  "start": 231,
                  "end": 237,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 20
                    },
                    "end": {
                      "line": 7,
                      "column": 26
                    },
                    "identifierName": "freeze"
                  },
                  "name": "freeze"
                },
                "computed": false
              },
              "arguments": [
                {
                  "type": "ObjectExpression",
                  "start": 238,
                  "end": 284,
                  "loc": {
                    "start": {
                      "line": 7,
                      "column": 27
                    },
                    "end": {
                      "line": 11,
                      "column": 1
                    }
                  },
                  "properties": [
                    {
                      "type": "ObjectProperty",
                      "start": 244,
                      "end": 252,
                      "loc": {
                        "start": {
                          "line": 8,
                          "column": 4
                        },
                        "end": {
                          "line": 8,
                          "column": 12
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 244,
                        "end": 249,
                        "loc": {
                          "start": {
                            "line": 8,
                            "column": 4
                          },
                          "end": {
                            "line": 8,
                            "column": 9
                          },
                          "identifierName": "Never"
                        },
                        "name": "Never"
                      },
                      "value": {
                        "type": "NumericLiteral",
                        "start": 251,
                        "end": 252,
                        "loc": {
                          "start": {
                            "line": 8,
                            "column": 11
                          },
                          "end": {
                            "line": 8,
                            "column": 12
                          }
                        },
                        "extra": {
                          "rawValue": 0,
                          "raw": "0"
                        },
                        "value": 0
                      }
                    },
                    {
                      "type": "ObjectProperty",
                      "start": 258,
                      "end": 266,
                      "loc": {
                        "start": {
                          "line": 9,
                          "column": 4
                        },
                        "end": {
                          "line": 9,
                          "column": 12
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 258,
                        "end": 263,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 4
                          },
                          "end": {
                            "line": 9,
                            "column": 9
                          },
                          "identifierName": "Hover"
                        },
                        "name": "Hover"
                      },
                      "value": {
                        "type": "NumericLiteral",
                        "start": 265,
                        "end": 266,
                        "loc": {
                          "start": {
                            "line": 9,
                            "column": 11
                          },
                          "end": {
                            "line": 9,
                            "column": 12
                          }
                        },
                        "extra": {
                          "rawValue": 1,
                          "raw": "1"
                        },
                        "value": 1
                      }
                    },
                    {
                      "type": "ObjectProperty",
                      "start": 272,
                      "end": 281,
                      "loc": {
                        "start": {
                          "line": 10,
                          "column": 4
                        },
                        "end": {
                          "line": 10,
                          "column": 13
                        }
                      },
                      "method": false,
                      "shorthand": false,
                      "computed": false,
                      "key": {
                        "type": "Identifier",
                        "start": 272,
                        "end": 278,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 4
                          },
                          "end": {
                            "line": 10,
                            "column": 10
                          },
                          "identifierName": "Always"
                        },
                        "name": "Always"
                      },
                      "value": {
                        "type": "NumericLiteral",
                        "start": 280,
                        "end": 281,
                        "loc": {
                          "start": {
                            "line": 10,
                            "column": 12
                          },
                          "end": {
                            "line": 10,
                            "column": 13
                          }
                        },
                        "extra": {
                          "rawValue": 2,
                          "raw": "2"
                        },
                        "value": 2
                      }
                    }
                  ]
                }
              ]
            }
          }
        ],
        "kind": "const"
      },
      {
        "type": "ExportDefaultDeclaration",
        "start": 288,
        "end": 4146,
        "loc": {
          "start": {
            "line": 13,
            "column": 0
          },
          "end": {
            "line": 119,
            "column": 1
          }
        },
        "declaration": {
          "type": "ClassDeclaration",
          "start": 303,
          "end": 4146,
          "loc": {
            "start": {
              "line": 13,
              "column": 15
            },
            "end": {
              "line": 119,
              "column": 1
            }
          },
          "id": {
            "type": "Identifier",
            "start": 309,
            "end": 319,
            "loc": {
              "start": {
                "line": 13,
                "column": 21
              },
              "end": {
                "line": 13,
                "column": 31
              },
              "identifierName": "Visualizer"
            },
            "name": "Visualizer"
          },
          "superClass": null,
          "body": {
            "type": "ClassBody",
            "start": 320,
            "end": 4146,
            "loc": {
              "start": {
                "line": 13,
                "column": 32
              },
              "end": {
                "line": 119,
                "column": 1
              }
            },
            "body": [
              {
                "type": "ClassMethod",
                "start": 326,
                "end": 745,
                "loc": {
                  "start": {
                    "line": 14,
                    "column": 4
                  },
                  "end": {
                    "line": 23,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 326,
                  "end": 337,
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 4
                    },
                    "end": {
                      "line": 14,
                      "column": 15
                    },
                    "identifierName": "constructor"
                  },
                  "name": "constructor"
                },
                "static": false,
                "kind": "constructor",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 338,
                    "end": 346,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 16
                      },
                      "end": {
                        "line": 14,
                        "column": 24
                      },
                      "identifierName": "sketcher"
                    },
                    "name": "sketcher"
                  },
                  {
                    "type": "Identifier",
                    "start": 348,
                    "end": 356,
                    "loc": {
                      "start": {
                        "line": 14,
                        "column": 26
                      },
                      "end": {
                        "line": 14,
                        "column": 34
                      },
                      "identifierName": "textures"
                    },
                    "name": "textures"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 358,
                  "end": 745,
                  "loc": {
                    "start": {
                      "line": 14,
                      "column": 36
                    },
                    "end": {
                      "line": 23,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 368,
                      "end": 391,
                      "loc": {
                        "start": {
                          "line": 15,
                          "column": 8
                        },
                        "end": {
                          "line": 15,
                          "column": 31
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 368,
                        "end": 390,
                        "loc": {
                          "start": {
                            "line": 15,
                            "column": 8
                          },
                          "end": {
                            "line": 15,
                            "column": 30
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 368,
                          "end": 377,
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 8
                            },
                            "end": {
                              "line": 15,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 368,
                            "end": 372,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 8
                              },
                              "end": {
                                "line": 15,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 373,
                            "end": 377,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 13
                              },
                              "end": {
                                "line": 15,
                                "column": 17
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "MemberExpression",
                          "start": 380,
                          "end": 390,
                          "loc": {
                            "start": {
                              "line": 15,
                              "column": 20
                            },
                            "end": {
                              "line": 15,
                              "column": 30
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 380,
                            "end": 384,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 20
                              },
                              "end": {
                                "line": 15,
                                "column": 24
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 385,
                            "end": 390,
                            "loc": {
                              "start": {
                                "line": 15,
                                "column": 25
                              },
                              "end": {
                                "line": 15,
                                "column": 30
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 400,
                      "end": 425,
                      "loc": {
                        "start": {
                          "line": 16,
                          "column": 8
                        },
                        "end": {
                          "line": 16,
                          "column": 33
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 400,
                        "end": 424,
                        "loc": {
                          "start": {
                            "line": 16,
                            "column": 8
                          },
                          "end": {
                            "line": 16,
                            "column": 32
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 400,
                          "end": 413,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 8
                            },
                            "end": {
                              "line": 16,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 400,
                            "end": 404,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 8
                              },
                              "end": {
                                "line": 16,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 405,
                            "end": 413,
                            "loc": {
                              "start": {
                                "line": 16,
                                "column": 13
                              },
                              "end": {
                                "line": 16,
                                "column": 21
                              },
                              "identifierName": "sketcher"
                            },
                            "name": "sketcher"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 416,
                          "end": 424,
                          "loc": {
                            "start": {
                              "line": 16,
                              "column": 24
                            },
                            "end": {
                              "line": 16,
                              "column": 32
                            },
                            "identifierName": "sketcher"
                          },
                          "name": "sketcher"
                        }
                      },
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
                          "start": 434,
                          "end": 507,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 8
                            },
                            "end": {
                              "line": 17,
                              "column": 81
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 516,
                      "end": 545,
                      "loc": {
                        "start": {
                          "line": 18,
                          "column": 8
                        },
                        "end": {
                          "line": 18,
                          "column": 37
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 516,
                        "end": 544,
                        "loc": {
                          "start": {
                            "line": 18,
                            "column": 8
                          },
                          "end": {
                            "line": 18,
                            "column": 36
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 516,
                          "end": 532,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 8
                            },
                            "end": {
                              "line": 18,
                              "column": 24
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 516,
                            "end": 520,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 8
                              },
                              "end": {
                                "line": 18,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 521,
                            "end": 532,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 13
                              },
                              "end": {
                                "line": 18,
                                "column": 24
                              },
                              "identifierName": "constraints"
                            },
                            "name": "constraints"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 535,
                          "end": 544,
                          "loc": {
                            "start": {
                              "line": 18,
                              "column": 27
                            },
                            "end": {
                              "line": 18,
                              "column": 36
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 539,
                            "end": 542,
                            "loc": {
                              "start": {
                                "line": 18,
                                "column": 31
                              },
                              "end": {
                                "line": 18,
                                "column": 34
                              },
                              "identifierName": "Set"
                            },
                            "name": "Set"
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
                          "start": 434,
                          "end": 507,
                          "loc": {
                            "start": {
                              "line": 17,
                              "column": 8
                            },
                            "end": {
                              "line": 17,
                              "column": 81
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Reverse mapping from entities to constraints",
                          "start": 554,
                          "end": 601,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 8
                            },
                            "end": {
                              "line": 19,
                              "column": 55
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 610,
                      "end": 637,
                      "loc": {
                        "start": {
                          "line": 20,
                          "column": 8
                        },
                        "end": {
                          "line": 20,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 610,
                        "end": 636,
                        "loc": {
                          "start": {
                            "line": 20,
                            "column": 8
                          },
                          "end": {
                            "line": 20,
                            "column": 34
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 610,
                          "end": 624,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 8
                            },
                            "end": {
                              "line": 20,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 610,
                            "end": 614,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 8
                              },
                              "end": {
                                "line": 20,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 615,
                            "end": 624,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 13
                              },
                              "end": {
                                "line": 20,
                                "column": 22
                              },
                              "identifierName": "entityFor"
                            },
                            "name": "entityFor"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 627,
                          "end": 636,
                          "loc": {
                            "start": {
                              "line": 20,
                              "column": 25
                            },
                            "end": {
                              "line": 20,
                              "column": 34
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 631,
                            "end": 634,
                            "loc": {
                              "start": {
                                "line": 20,
                                "column": 29
                              },
                              "end": {
                                "line": 20,
                                "column": 32
                              },
                              "identifierName": "Map"
                            },
                            "name": "Map"
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Reverse mapping from entities to constraints",
                          "start": 554,
                          "end": 601,
                          "loc": {
                            "start": {
                              "line": 19,
                              "column": 8
                            },
                            "end": {
                              "line": 19,
                              "column": 55
                            }
                          }
                        }
                      ],
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Used to track constraint positions in all modes",
                          "start": 646,
                          "end": 696,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 8
                            },
                            "end": {
                              "line": 21,
                              "column": 58
                            }
                          }
                        }
                      ]
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 705,
                      "end": 739,
                      "loc": {
                        "start": {
                          "line": 22,
                          "column": 8
                        },
                        "end": {
                          "line": 22,
                          "column": 42
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 705,
                        "end": 738,
                        "loc": {
                          "start": {
                            "line": 22,
                            "column": 8
                          },
                          "end": {
                            "line": 22,
                            "column": 41
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 705,
                          "end": 726,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 8
                            },
                            "end": {
                              "line": 22,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 705,
                            "end": 709,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 8
                              },
                              "end": {
                                "line": 22,
                                "column": 12
                              }
                            },
                            "leadingComments": null
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 710,
                            "end": 726,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 13
                              },
                              "end": {
                                "line": 22,
                                "column": 29
                              },
                              "identifierName": "visiblePositions"
                            },
                            "name": "visiblePositions"
                          },
                          "computed": false,
                          "leadingComments": null
                        },
                        "right": {
                          "type": "NewExpression",
                          "start": 729,
                          "end": 738,
                          "loc": {
                            "start": {
                              "line": 22,
                              "column": 32
                            },
                            "end": {
                              "line": 22,
                              "column": 41
                            }
                          },
                          "callee": {
                            "type": "Identifier",
                            "start": 733,
                            "end": 736,
                            "loc": {
                              "start": {
                                "line": 22,
                                "column": 36
                              },
                              "end": {
                                "line": 22,
                                "column": 39
                              },
                              "identifierName": "Set"
                            },
                            "name": "Set"
                          },
                          "arguments": []
                        },
                        "leadingComments": null
                      },
                      "leadingComments": [
                        {
                          "type": "CommentLine",
                          "value": " Used to track constraint positions in all modes",
                          "start": 646,
                          "end": 696,
                          "loc": {
                            "start": {
                              "line": 21,
                              "column": 8
                            },
                            "end": {
                              "line": 21,
                              "column": 58
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 751,
                "end": 1109,
                "loc": {
                  "start": {
                    "line": 25,
                    "column": 4
                  },
                  "end": {
                    "line": 32,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 751,
                  "end": 764,
                  "loc": {
                    "start": {
                      "line": 25,
                      "column": 4
                    },
                    "end": {
                      "line": 25,
                      "column": 17
                    },
                    "identifierName": "addConstraint"
                  },
                  "name": "addConstraint"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 765,
                    "end": 775,
                    "loc": {
                      "start": {
                        "line": 25,
                        "column": 18
                      },
                      "end": {
                        "line": 25,
                        "column": 28
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 777,
                  "end": 1109,
                  "loc": {
                    "start": {
                      "line": 25,
                      "column": 30
                    },
                    "end": {
                      "line": 32,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 787,
                      "end": 852,
                      "loc": {
                        "start": {
                          "line": 26,
                          "column": 8
                        },
                        "end": {
                          "line": 26,
                          "column": 73
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 791,
                        "end": 843,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 12
                          },
                          "end": {
                            "line": 26,
                            "column": 64
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "BinaryExpression",
                          "start": 793,
                          "end": 842,
                          "loc": {
                            "start": {
                              "line": 26,
                              "column": 14
                            },
                            "end": {
                              "line": 26,
                              "column": 63
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 793,
                            "end": 812,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 14
                              },
                              "end": {
                                "line": 26,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 793,
                              "end": 803,
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 14
                                },
                                "end": {
                                  "line": 26,
                                  "column": 24
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 804,
                              "end": 812,
                              "loc": {
                                "start": {
                                  "line": 26,
                                  "column": 25
                                },
                                "end": {
                                  "line": 26,
                                  "column": 33
                                },
                                "identifierName": "graphics"
                              },
                              "name": "graphics"
                            },
                            "computed": false
                          },
                          "operator": "instanceof",
                          "right": {
                            "type": "Identifier",
                            "start": 824,
                            "end": 842,
                            "loc": {
                              "start": {
                                "line": 26,
                                "column": 45
                              },
                              "end": {
                                "line": 26,
                                "column": 63
                              },
                              "identifierName": "ConstraintGraphics"
                            },
                            "name": "ConstraintGraphics"
                          },
                          "extra": {
                            "parenthesized": true,
                            "parenStart": 792
                          }
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 845,
                        "end": 852,
                        "loc": {
                          "start": {
                            "line": 26,
                            "column": 66
                          },
                          "end": {
                            "line": 26,
                            "column": 73
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 861,
                      "end": 897,
                      "loc": {
                        "start": {
                          "line": 27,
                          "column": 8
                        },
                        "end": {
                          "line": 27,
                          "column": 44
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 861,
                        "end": 896,
                        "loc": {
                          "start": {
                            "line": 27,
                            "column": 8
                          },
                          "end": {
                            "line": 27,
                            "column": 43
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 861,
                          "end": 881,
                          "loc": {
                            "start": {
                              "line": 27,
                              "column": 8
                            },
                            "end": {
                              "line": 27,
                              "column": 28
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 861,
                            "end": 877,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 8
                              },
                              "end": {
                                "line": 27,
                                "column": 24
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 861,
                              "end": 865,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 8
                                },
                                "end": {
                                  "line": 27,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 866,
                              "end": 877,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 13
                                },
                                "end": {
                                  "line": 27,
                                  "column": 24
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 878,
                            "end": 881,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 25
                              },
                              "end": {
                                "line": 27,
                                "column": 28
                              },
                              "identifierName": "add"
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 882,
                            "end": 895,
                            "loc": {
                              "start": {
                                "line": 27,
                                "column": 29
                              },
                              "end": {
                                "line": 27,
                                "column": 42
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 882,
                              "end": 892,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 29
                                },
                                "end": {
                                  "line": 27,
                                  "column": 39
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 893,
                              "end": 895,
                              "loc": {
                                "start": {
                                  "line": 27,
                                  "column": 40
                                },
                                "end": {
                                  "line": 27,
                                  "column": 42
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        ]
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 906,
                      "end": 1103,
                      "loc": {
                        "start": {
                          "line": 28,
                          "column": 8
                        },
                        "end": {
                          "line": 31,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 911,
                        "end": 921,
                        "loc": {
                          "start": {
                            "line": 28,
                            "column": 13
                          },
                          "end": {
                            "line": 28,
                            "column": 23
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 915,
                            "end": 921,
                            "loc": {
                              "start": {
                                "line": 28,
                                "column": 17
                              },
                              "end": {
                                "line": 28,
                                "column": 23
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 915,
                              "end": 921,
                              "loc": {
                                "start": {
                                  "line": 28,
                                  "column": 17
                                },
                                "end": {
                                  "line": 28,
                                  "column": 23
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 925,
                        "end": 944,
                        "loc": {
                          "start": {
                            "line": 28,
                            "column": 27
                          },
                          "end": {
                            "line": 28,
                            "column": 46
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 925,
                          "end": 935,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 27
                            },
                            "end": {
                              "line": 28,
                              "column": 37
                            },
                            "identifierName": "constraint"
                          },
                          "name": "constraint"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 936,
                          "end": 944,
                          "loc": {
                            "start": {
                              "line": 28,
                              "column": 38
                            },
                            "end": {
                              "line": 28,
                              "column": 46
                            },
                            "identifierName": "entities"
                          },
                          "name": "entities"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 946,
                        "end": 1103,
                        "loc": {
                          "start": {
                            "line": 28,
                            "column": 48
                          },
                          "end": {
                            "line": 31,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "IfStatement",
                            "start": 960,
                            "end": 1030,
                            "loc": {
                              "start": {
                                "line": 29,
                                "column": 12
                              },
                              "end": {
                                "line": 29,
                                "column": 82
                              }
                            },
                            "test": {
                              "type": "UnaryExpression",
                              "start": 964,
                              "end": 994,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 16
                                },
                                "end": {
                                  "line": 29,
                                  "column": 46
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "CallExpression",
                                "start": 965,
                                "end": 994,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 46
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 965,
                                  "end": 983,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 35
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 965,
                                    "end": 979,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 17
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 31
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 965,
                                      "end": 969,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 17
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 21
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 970,
                                      "end": 979,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 22
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 31
                                        },
                                        "identifierName": "entityFor"
                                      },
                                      "name": "entityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 980,
                                    "end": 983,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 35
                                      },
                                      "identifierName": "has"
                                    },
                                    "name": "has"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 984,
                                    "end": 993,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 36
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 45
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 984,
                                      "end": 990,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 36
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 42
                                        },
                                        "identifierName": "entity"
                                      },
                                      "name": "entity"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 991,
                                      "end": 993,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 45
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    },
                                    "computed": false
                                  }
                                ]
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 996,
                              "end": 1030,
                              "loc": {
                                "start": {
                                  "line": 29,
                                  "column": 48
                                },
                                "end": {
                                  "line": 29,
                                  "column": 82
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 996,
                                "end": 1029,
                                "loc": {
                                  "start": {
                                    "line": 29,
                                    "column": 48
                                  },
                                  "end": {
                                    "line": 29,
                                    "column": 81
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 996,
                                  "end": 1014,
                                  "loc": {
                                    "start": {
                                      "line": 29,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 29,
                                      "column": 66
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 996,
                                    "end": 1010,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 48
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 62
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 996,
                                      "end": 1000,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 48
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 52
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1001,
                                      "end": 1010,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 53
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 62
                                        },
                                        "identifierName": "entityFor"
                                      },
                                      "name": "entityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1011,
                                    "end": 1014,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 63
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 66
                                      },
                                      "identifierName": "set"
                                    },
                                    "name": "set"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 1015,
                                    "end": 1024,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 67
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 76
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1015,
                                      "end": 1021,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 67
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 73
                                        },
                                        "identifierName": "entity"
                                      },
                                      "name": "entity"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1022,
                                      "end": 1024,
                                      "loc": {
                                        "start": {
                                          "line": 29,
                                          "column": 74
                                        },
                                        "end": {
                                          "line": 29,
                                          "column": 76
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "ArrayExpression",
                                    "start": 1026,
                                    "end": 1028,
                                    "loc": {
                                      "start": {
                                        "line": 29,
                                        "column": 78
                                      },
                                      "end": {
                                        "line": 29,
                                        "column": 80
                                      }
                                    },
                                    "elements": []
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 1043,
                            "end": 1093,
                            "loc": {
                              "start": {
                                "line": 30,
                                "column": 12
                              },
                              "end": {
                                "line": 30,
                                "column": 62
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 1043,
                              "end": 1092,
                              "loc": {
                                "start": {
                                  "line": 30,
                                  "column": 12
                                },
                                "end": {
                                  "line": 30,
                                  "column": 61
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 1043,
                                "end": 1077,
                                "loc": {
                                  "start": {
                                    "line": 30,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 30,
                                    "column": 46
                                  }
                                },
                                "object": {
                                  "type": "CallExpression",
                                  "start": 1043,
                                  "end": 1072,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 41
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1043,
                                    "end": 1061,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 12
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 30
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 1043,
                                      "end": 1057,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 12
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 26
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1043,
                                        "end": 1047,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 12
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 16
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1048,
                                        "end": 1057,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 17
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 26
                                          },
                                          "identifierName": "entityFor"
                                        },
                                        "name": "entityFor"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1058,
                                      "end": 1061,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 27
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 30
                                        },
                                        "identifierName": "get"
                                      },
                                      "name": "get"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1062,
                                      "end": 1071,
                                      "loc": {
                                        "start": {
                                          "line": 30,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 30,
                                          "column": 40
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 1062,
                                        "end": 1068,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 31
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 37
                                          },
                                          "identifierName": "entity"
                                        },
                                        "name": "entity"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1069,
                                        "end": 1071,
                                        "loc": {
                                          "start": {
                                            "line": 30,
                                            "column": 38
                                          },
                                          "end": {
                                            "line": 30,
                                            "column": 40
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": false
                                    }
                                  ]
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1073,
                                  "end": 1077,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 46
                                    },
                                    "identifierName": "push"
                                  },
                                  "name": "push"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 1078,
                                  "end": 1091,
                                  "loc": {
                                    "start": {
                                      "line": 30,
                                      "column": 47
                                    },
                                    "end": {
                                      "line": 30,
                                      "column": 60
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 1078,
                                    "end": 1088,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 57
                                      },
                                      "identifierName": "constraint"
                                    },
                                    "name": "constraint"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1089,
                                    "end": 1091,
                                    "loc": {
                                      "start": {
                                        "line": 30,
                                        "column": 58
                                      },
                                      "end": {
                                        "line": 30,
                                        "column": 60
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  },
                                  "computed": false
                                }
                              ]
                            }
                          }
                        ],
                        "directives": []
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1115,
                "end": 1571,
                "loc": {
                  "start": {
                    "line": 34,
                    "column": 4
                  },
                  "end": {
                    "line": 42,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1115,
                  "end": 1131,
                  "loc": {
                    "start": {
                      "line": 34,
                      "column": 4
                    },
                    "end": {
                      "line": 34,
                      "column": 20
                    },
                    "identifierName": "removeConstraint"
                  },
                  "name": "removeConstraint"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1132,
                    "end": 1142,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 21
                      },
                      "end": {
                        "line": 34,
                        "column": 31
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  },
                  {
                    "type": "AssignmentPattern",
                    "start": 1144,
                    "end": 1168,
                    "loc": {
                      "start": {
                        "line": 34,
                        "column": 33
                      },
                      "end": {
                        "line": 34,
                        "column": 57
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 1144,
                      "end": 1149,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 33
                        },
                        "end": {
                          "line": 34,
                          "column": 38
                        },
                        "identifierName": "state"
                      },
                      "name": "state"
                    },
                    "right": {
                      "type": "MemberExpression",
                      "start": 1152,
                      "end": 1168,
                      "loc": {
                        "start": {
                          "line": 34,
                          "column": 41
                        },
                        "end": {
                          "line": 34,
                          "column": 57
                        }
                      },
                      "object": {
                        "type": "Identifier",
                        "start": 1152,
                        "end": 1162,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 41
                          },
                          "end": {
                            "line": 34,
                            "column": 51
                          },
                          "identifierName": "constraint"
                        },
                        "name": "constraint"
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 1163,
                        "end": 1168,
                        "loc": {
                          "start": {
                            "line": 34,
                            "column": 52
                          },
                          "end": {
                            "line": 34,
                            "column": 57
                          },
                          "identifierName": "state"
                        },
                        "name": "state"
                      },
                      "computed": false
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1170,
                  "end": 1571,
                  "loc": {
                    "start": {
                      "line": 34,
                      "column": 59
                    },
                    "end": {
                      "line": 42,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 1180,
                      "end": 1245,
                      "loc": {
                        "start": {
                          "line": 35,
                          "column": 8
                        },
                        "end": {
                          "line": 35,
                          "column": 73
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 1184,
                        "end": 1236,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 12
                          },
                          "end": {
                            "line": 35,
                            "column": 64
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "BinaryExpression",
                          "start": 1186,
                          "end": 1235,
                          "loc": {
                            "start": {
                              "line": 35,
                              "column": 14
                            },
                            "end": {
                              "line": 35,
                              "column": 63
                            }
                          },
                          "left": {
                            "type": "MemberExpression",
                            "start": 1186,
                            "end": 1205,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 14
                              },
                              "end": {
                                "line": 35,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1186,
                              "end": 1196,
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 14
                                },
                                "end": {
                                  "line": 35,
                                  "column": 24
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1197,
                              "end": 1205,
                              "loc": {
                                "start": {
                                  "line": 35,
                                  "column": 25
                                },
                                "end": {
                                  "line": 35,
                                  "column": 33
                                },
                                "identifierName": "graphics"
                              },
                              "name": "graphics"
                            },
                            "computed": false
                          },
                          "operator": "instanceof",
                          "right": {
                            "type": "Identifier",
                            "start": 1217,
                            "end": 1235,
                            "loc": {
                              "start": {
                                "line": 35,
                                "column": 45
                              },
                              "end": {
                                "line": 35,
                                "column": 63
                              },
                              "identifierName": "ConstraintGraphics"
                            },
                            "name": "ConstraintGraphics"
                          },
                          "extra": {
                            "parenthesized": true,
                            "parenStart": 1185
                          }
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 1238,
                        "end": 1245,
                        "loc": {
                          "start": {
                            "line": 35,
                            "column": 66
                          },
                          "end": {
                            "line": 35,
                            "column": 73
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 1254,
                      "end": 1517,
                      "loc": {
                        "start": {
                          "line": 36,
                          "column": 8
                        },
                        "end": {
                          "line": 40,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 1259,
                        "end": 1274,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 13
                          },
                          "end": {
                            "line": 36,
                            "column": 28
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 1263,
                            "end": 1274,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 17
                              },
                              "end": {
                                "line": 36,
                                "column": 28
                              }
                            },
                            "id": {
                              "type": "ObjectPattern",
                              "start": 1263,
                              "end": 1274,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 17
                                },
                                "end": {
                                  "line": 36,
                                  "column": 28
                                }
                              },
                              "properties": [
                                {
                                  "type": "ObjectProperty",
                                  "start": 1264,
                                  "end": 1273,
                                  "loc": {
                                    "start": {
                                      "line": 36,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 36,
                                      "column": 27
                                    }
                                  },
                                  "method": false,
                                  "shorthand": false,
                                  "computed": false,
                                  "key": {
                                    "type": "Identifier",
                                    "start": 1264,
                                    "end": 1269,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 18
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 23
                                      },
                                      "identifierName": "value"
                                    },
                                    "name": "value"
                                  },
                                  "value": {
                                    "type": "Identifier",
                                    "start": 1271,
                                    "end": 1273,
                                    "loc": {
                                      "start": {
                                        "line": 36,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 36,
                                        "column": 27
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                }
                              ]
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 1278,
                        "end": 1308,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 32
                          },
                          "end": {
                            "line": 36,
                            "column": 62
                          }
                        },
                        "object": {
                          "type": "MemberExpression",
                          "start": 1278,
                          "end": 1300,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 32
                            },
                            "end": {
                              "line": 36,
                              "column": 54
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1278,
                            "end": 1291,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 32
                              },
                              "end": {
                                "line": 36,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1278,
                              "end": 1283,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 32
                                },
                                "end": {
                                  "line": 36,
                                  "column": 37
                                },
                                "identifierName": "state"
                              },
                              "name": "state"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1284,
                              "end": 1291,
                              "loc": {
                                "start": {
                                  "line": 36,
                                  "column": 38
                                },
                                "end": {
                                  "line": 36,
                                  "column": 45
                                },
                                "identifierName": "members"
                              },
                              "name": "members"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1292,
                            "end": 1300,
                            "loc": {
                              "start": {
                                "line": 36,
                                "column": 46
                              },
                              "end": {
                                "line": 36,
                                "column": 54
                              },
                              "identifierName": "entities"
                            },
                            "name": "entities"
                          },
                          "computed": false
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 1301,
                          "end": 1308,
                          "loc": {
                            "start": {
                              "line": 36,
                              "column": 55
                            },
                            "end": {
                              "line": 36,
                              "column": 62
                            },
                            "identifierName": "members"
                          },
                          "name": "members"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 1310,
                        "end": 1517,
                        "loc": {
                          "start": {
                            "line": 36,
                            "column": 64
                          },
                          "end": {
                            "line": 40,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 1324,
                            "end": 1367,
                            "loc": {
                              "start": {
                                "line": 37,
                                "column": 12
                              },
                              "end": {
                                "line": 37,
                                "column": 55
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 1330,
                                "end": 1366,
                                "loc": {
                                  "start": {
                                    "line": 37,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 37,
                                    "column": 54
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 1330,
                                  "end": 1341,
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 29
                                    },
                                    "identifierName": "constraints"
                                  },
                                  "name": "constraints"
                                },
                                "init": {
                                  "type": "CallExpression",
                                  "start": 1344,
                                  "end": 1366,
                                  "loc": {
                                    "start": {
                                      "line": 37,
                                      "column": 32
                                    },
                                    "end": {
                                      "line": 37,
                                      "column": 54
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1344,
                                    "end": 1362,
                                    "loc": {
                                      "start": {
                                        "line": 37,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 37,
                                        "column": 50
                                      }
                                    },
                                    "object": {
                                      "type": "MemberExpression",
                                      "start": 1344,
                                      "end": 1358,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 32
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 46
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1344,
                                        "end": 1348,
                                        "loc": {
                                          "start": {
                                            "line": 37,
                                            "column": 32
                                          },
                                          "end": {
                                            "line": 37,
                                            "column": 36
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1349,
                                        "end": 1358,
                                        "loc": {
                                          "start": {
                                            "line": 37,
                                            "column": 37
                                          },
                                          "end": {
                                            "line": 37,
                                            "column": 46
                                          },
                                          "identifierName": "entityFor"
                                        },
                                        "name": "entityFor"
                                      },
                                      "computed": false
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1359,
                                      "end": 1362,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 50
                                        },
                                        "identifierName": "get"
                                      },
                                      "name": "get"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "Identifier",
                                      "start": 1363,
                                      "end": 1365,
                                      "loc": {
                                        "start": {
                                          "line": 37,
                                          "column": 51
                                        },
                                        "end": {
                                          "line": 37,
                                          "column": 53
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "const"
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 1380,
                            "end": 1438,
                            "loc": {
                              "start": {
                                "line": 38,
                                "column": 12
                              },
                              "end": {
                                "line": 38,
                                "column": 70
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 1380,
                              "end": 1437,
                              "loc": {
                                "start": {
                                  "line": 38,
                                  "column": 12
                                },
                                "end": {
                                  "line": 38,
                                  "column": 69
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 1380,
                                "end": 1398,
                                "loc": {
                                  "start": {
                                    "line": 38,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 38,
                                    "column": 30
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1380,
                                  "end": 1391,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 23
                                    },
                                    "identifierName": "constraints"
                                  },
                                  "name": "constraints"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1392,
                                  "end": 1398,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 24
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 30
                                    },
                                    "identifierName": "splice"
                                  },
                                  "name": "splice"
                                },
                                "computed": false
                              },
                              "arguments": [
                                {
                                  "type": "CallExpression",
                                  "start": 1399,
                                  "end": 1433,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 65
                                    }
                                  },
                                  "callee": {
                                    "type": "MemberExpression",
                                    "start": 1399,
                                    "end": 1418,
                                    "loc": {
                                      "start": {
                                        "line": 38,
                                        "column": 31
                                      },
                                      "end": {
                                        "line": 38,
                                        "column": 50
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 1399,
                                      "end": 1410,
                                      "loc": {
                                        "start": {
                                          "line": 38,
                                          "column": 31
                                        },
                                        "end": {
                                          "line": 38,
                                          "column": 42
                                        },
                                        "identifierName": "constraints"
                                      },
                                      "name": "constraints"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1411,
                                      "end": 1418,
                                      "loc": {
                                        "start": {
                                          "line": 38,
                                          "column": 43
                                        },
                                        "end": {
                                          "line": 38,
                                          "column": 50
                                        },
                                        "identifierName": "indexOf"
                                      },
                                      "name": "indexOf"
                                    },
                                    "computed": false
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1419,
                                      "end": 1432,
                                      "loc": {
                                        "start": {
                                          "line": 38,
                                          "column": 51
                                        },
                                        "end": {
                                          "line": 38,
                                          "column": 64
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 1419,
                                        "end": 1429,
                                        "loc": {
                                          "start": {
                                            "line": 38,
                                            "column": 51
                                          },
                                          "end": {
                                            "line": 38,
                                            "column": 61
                                          },
                                          "identifierName": "constraint"
                                        },
                                        "name": "constraint"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1430,
                                        "end": 1432,
                                        "loc": {
                                          "start": {
                                            "line": 38,
                                            "column": 62
                                          },
                                          "end": {
                                            "line": 38,
                                            "column": 64
                                          },
                                          "identifierName": "id"
                                        },
                                        "name": "id"
                                      },
                                      "computed": false
                                    }
                                  ]
                                },
                                {
                                  "type": "NumericLiteral",
                                  "start": 1435,
                                  "end": 1436,
                                  "loc": {
                                    "start": {
                                      "line": 38,
                                      "column": 67
                                    },
                                    "end": {
                                      "line": 38,
                                      "column": 68
                                    }
                                  },
                                  "extra": {
                                    "rawValue": 1,
                                    "raw": "1"
                                  },
                                  "value": 1
                                }
                              ]
                            }
                          },
                          {
                            "type": "IfStatement",
                            "start": 1451,
                            "end": 1507,
                            "loc": {
                              "start": {
                                "line": 39,
                                "column": 12
                              },
                              "end": {
                                "line": 39,
                                "column": 68
                              }
                            },
                            "test": {
                              "type": "BinaryExpression",
                              "start": 1455,
                              "end": 1479,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 16
                                },
                                "end": {
                                  "line": 39,
                                  "column": 40
                                }
                              },
                              "left": {
                                "type": "MemberExpression",
                                "start": 1455,
                                "end": 1473,
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 34
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1455,
                                  "end": 1466,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 27
                                    },
                                    "identifierName": "constraints"
                                  },
                                  "name": "constraints"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1467,
                                  "end": 1473,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 34
                                    },
                                    "identifierName": "length"
                                  },
                                  "name": "length"
                                },
                                "computed": false
                              },
                              "operator": "===",
                              "right": {
                                "type": "NumericLiteral",
                                "start": 1478,
                                "end": 1479,
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 39
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 40
                                  }
                                },
                                "extra": {
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                "value": 0
                              }
                            },
                            "consequent": {
                              "type": "ExpressionStatement",
                              "start": 1481,
                              "end": 1507,
                              "loc": {
                                "start": {
                                  "line": 39,
                                  "column": 42
                                },
                                "end": {
                                  "line": 39,
                                  "column": 68
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 1481,
                                "end": 1506,
                                "loc": {
                                  "start": {
                                    "line": 39,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 39,
                                    "column": 67
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 1481,
                                  "end": 1502,
                                  "loc": {
                                    "start": {
                                      "line": 39,
                                      "column": 42
                                    },
                                    "end": {
                                      "line": 39,
                                      "column": 63
                                    }
                                  },
                                  "object": {
                                    "type": "MemberExpression",
                                    "start": 1481,
                                    "end": 1495,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 42
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 56
                                      }
                                    },
                                    "object": {
                                      "type": "ThisExpression",
                                      "start": 1481,
                                      "end": 1485,
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 42
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 46
                                        }
                                      }
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 1486,
                                      "end": 1495,
                                      "loc": {
                                        "start": {
                                          "line": 39,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 39,
                                          "column": 56
                                        },
                                        "identifierName": "entityFor"
                                      },
                                      "name": "entityFor"
                                    },
                                    "computed": false
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 1496,
                                    "end": 1502,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 57
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 63
                                      },
                                      "identifierName": "delete"
                                    },
                                    "name": "delete"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "Identifier",
                                    "start": 1503,
                                    "end": 1505,
                                    "loc": {
                                      "start": {
                                        "line": 39,
                                        "column": 64
                                      },
                                      "end": {
                                        "line": 39,
                                        "column": 66
                                      },
                                      "identifierName": "id"
                                    },
                                    "name": "id"
                                  }
                                ]
                              }
                            },
                            "alternate": null
                          }
                        ],
                        "directives": []
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 1526,
                      "end": 1565,
                      "loc": {
                        "start": {
                          "line": 41,
                          "column": 8
                        },
                        "end": {
                          "line": 41,
                          "column": 47
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1526,
                        "end": 1564,
                        "loc": {
                          "start": {
                            "line": 41,
                            "column": 8
                          },
                          "end": {
                            "line": 41,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1526,
                          "end": 1549,
                          "loc": {
                            "start": {
                              "line": 41,
                              "column": 8
                            },
                            "end": {
                              "line": 41,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 1526,
                            "end": 1542,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 8
                              },
                              "end": {
                                "line": 41,
                                "column": 24
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 1526,
                              "end": 1530,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 8
                                },
                                "end": {
                                  "line": 41,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1531,
                              "end": 1542,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 13
                                },
                                "end": {
                                  "line": 41,
                                  "column": 24
                                },
                                "identifierName": "constraints"
                              },
                              "name": "constraints"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1543,
                            "end": 1549,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 25
                              },
                              "end": {
                                "line": 41,
                                "column": 31
                              },
                              "identifierName": "delete"
                            },
                            "name": "delete"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "MemberExpression",
                            "start": 1550,
                            "end": 1563,
                            "loc": {
                              "start": {
                                "line": 41,
                                "column": 32
                              },
                              "end": {
                                "line": 41,
                                "column": 45
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 1550,
                              "end": 1560,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 32
                                },
                                "end": {
                                  "line": 41,
                                  "column": 42
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1561,
                              "end": 1563,
                              "loc": {
                                "start": {
                                  "line": 41,
                                  "column": 43
                                },
                                "end": {
                                  "line": 41,
                                  "column": 45
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "computed": false
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1577,
                "end": 1696,
                "loc": {
                  "start": {
                    "line": 44,
                    "column": 4
                  },
                  "end": {
                    "line": 46,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1577,
                  "end": 1593,
                  "loc": {
                    "start": {
                      "line": 44,
                      "column": 4
                    },
                    "end": {
                      "line": 44,
                      "column": 20
                    },
                    "identifierName": "updateConstraint"
                  },
                  "name": "updateConstraint"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1594,
                    "end": 1604,
                    "loc": {
                      "start": {
                        "line": 44,
                        "column": 21
                      },
                      "end": {
                        "line": 44,
                        "column": 31
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1606,
                  "end": 1696,
                  "loc": {
                    "start": {
                      "line": 44,
                      "column": 33
                    },
                    "end": {
                      "line": 46,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 1616,
                      "end": 1690,
                      "loc": {
                        "start": {
                          "line": 45,
                          "column": 8
                        },
                        "end": {
                          "line": 45,
                          "column": 82
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 1616,
                        "end": 1689,
                        "loc": {
                          "start": {
                            "line": 45,
                            "column": 8
                          },
                          "end": {
                            "line": 45,
                            "column": 81
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 1616,
                          "end": 1626,
                          "loc": {
                            "start": {
                              "line": 45,
                              "column": 8
                            },
                            "end": {
                              "line": 45,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 1616,
                            "end": 1620,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 8
                              },
                              "end": {
                                "line": 45,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 1621,
                            "end": 1626,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 13
                              },
                              "end": {
                                "line": 45,
                                "column": 18
                              },
                              "identifierName": "place"
                            },
                            "name": "place"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 1627,
                            "end": 1637,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 19
                              },
                              "end": {
                                "line": 45,
                                "column": 29
                              },
                              "identifierName": "constraint"
                            },
                            "name": "constraint"
                          },
                          {
                            "type": "MemberExpression",
                            "start": 1639,
                            "end": 1661,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 31
                              },
                              "end": {
                                "line": 45,
                                "column": 53
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1639,
                              "end": 1658,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 31
                                },
                                "end": {
                                  "line": 45,
                                  "column": 50
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1639,
                                "end": 1649,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 31
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 41
                                  },
                                  "identifierName": "constraint"
                                },
                                "name": "constraint"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1650,
                                "end": 1658,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 50
                                  },
                                  "identifierName": "entities"
                                },
                                "name": "entities"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "NumericLiteral",
                              "start": 1659,
                              "end": 1660,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 51
                                },
                                "end": {
                                  "line": 45,
                                  "column": 52
                                }
                              },
                              "extra": {
                                "rawValue": 0,
                                "raw": "0"
                              },
                              "value": 0
                            },
                            "computed": true
                          },
                          {
                            "type": "BinaryExpression",
                            "start": 1663,
                            "end": 1688,
                            "loc": {
                              "start": {
                                "line": 45,
                                "column": 55
                              },
                              "end": {
                                "line": 45,
                                "column": 80
                              }
                            },
                            "left": {
                              "type": "MemberExpression",
                              "start": 1663,
                              "end": 1672,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 55
                                },
                                "end": {
                                  "line": 45,
                                  "column": 64
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1663,
                                "end": 1667,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 55
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 59
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1668,
                                "end": 1672,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 60
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 64
                                  },
                                  "identifierName": "mode"
                                },
                                "name": "mode"
                              },
                              "computed": false
                            },
                            "operator": "===",
                            "right": {
                              "type": "MemberExpression",
                              "start": 1677,
                              "end": 1688,
                              "loc": {
                                "start": {
                                  "line": 45,
                                  "column": 69
                                },
                                "end": {
                                  "line": 45,
                                  "column": 80
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1677,
                                "end": 1681,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 69
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 73
                                  },
                                  "identifierName": "Mode"
                                },
                                "name": "Mode"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1682,
                                "end": 1688,
                                "loc": {
                                  "start": {
                                    "line": 45,
                                    "column": 74
                                  },
                                  "end": {
                                    "line": 45,
                                    "column": 80
                                  },
                                  "identifierName": "Always"
                                },
                                "name": "Always"
                              },
                              "computed": false
                            }
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 1702,
                "end": 2033,
                "loc": {
                  "start": {
                    "line": 48,
                    "column": 4
                  },
                  "end": {
                    "line": 54,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 1702,
                  "end": 1714,
                  "loc": {
                    "start": {
                      "line": 48,
                      "column": 4
                    },
                    "end": {
                      "line": 48,
                      "column": 16
                    },
                    "identifierName": "updateEntity"
                  },
                  "name": "updateEntity"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 1715,
                    "end": 1721,
                    "loc": {
                      "start": {
                        "line": 48,
                        "column": 17
                      },
                      "end": {
                        "line": 48,
                        "column": 23
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 1723,
                  "end": 2033,
                  "loc": {
                    "start": {
                      "line": 48,
                      "column": 25
                    },
                    "end": {
                      "line": 54,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ForOfStatement",
                      "start": 1733,
                      "end": 2027,
                      "loc": {
                        "start": {
                          "line": 49,
                          "column": 8
                        },
                        "end": {
                          "line": 53,
                          "column": 9
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 1738,
                        "end": 1744,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 13
                          },
                          "end": {
                            "line": 49,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 1742,
                            "end": 1744,
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 17
                              },
                              "end": {
                                "line": 49,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 1742,
                              "end": 1744,
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 17
                                },
                                "end": {
                                  "line": 49,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "LogicalExpression",
                        "start": 1748,
                        "end": 1783,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 23
                          },
                          "end": {
                            "line": 49,
                            "column": 58
                          }
                        },
                        "left": {
                          "type": "CallExpression",
                          "start": 1748,
                          "end": 1777,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 23
                            },
                            "end": {
                              "line": 49,
                              "column": 52
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 1748,
                            "end": 1766,
                            "loc": {
                              "start": {
                                "line": 49,
                                "column": 23
                              },
                              "end": {
                                "line": 49,
                                "column": 41
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 1748,
                              "end": 1762,
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 23
                                },
                                "end": {
                                  "line": 49,
                                  "column": 37
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 1748,
                                "end": 1752,
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 27
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1753,
                                "end": 1762,
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 37
                                  },
                                  "identifierName": "entityFor"
                                },
                                "name": "entityFor"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 1763,
                              "end": 1766,
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 38
                                },
                                "end": {
                                  "line": 49,
                                  "column": 41
                                },
                                "identifierName": "get"
                              },
                              "name": "get"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 1767,
                              "end": 1776,
                              "loc": {
                                "start": {
                                  "line": 49,
                                  "column": 42
                                },
                                "end": {
                                  "line": 49,
                                  "column": 51
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 1767,
                                "end": 1773,
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 48
                                  },
                                  "identifierName": "entity"
                                },
                                "name": "entity"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 1774,
                                "end": 1776,
                                "loc": {
                                  "start": {
                                    "line": 49,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 49,
                                    "column": 51
                                  },
                                  "identifierName": "id"
                                },
                                "name": "id"
                              },
                              "computed": false
                            }
                          ]
                        },
                        "operator": "||",
                        "right": {
                          "type": "ArrayExpression",
                          "start": 1781,
                          "end": 1783,
                          "loc": {
                            "start": {
                              "line": 49,
                              "column": 56
                            },
                            "end": {
                              "line": 49,
                              "column": 58
                            }
                          },
                          "elements": []
                        }
                      },
                      "body": {
                        "type": "BlockStatement",
                        "start": 1785,
                        "end": 2027,
                        "loc": {
                          "start": {
                            "line": 49,
                            "column": 60
                          },
                          "end": {
                            "line": 53,
                            "column": 9
                          }
                        },
                        "body": [
                          {
                            "type": "VariableDeclaration",
                            "start": 1799,
                            "end": 1847,
                            "loc": {
                              "start": {
                                "line": 50,
                                "column": 12
                              },
                              "end": {
                                "line": 50,
                                "column": 60
                              }
                            },
                            "declarations": [
                              {
                                "type": "VariableDeclarator",
                                "start": 1805,
                                "end": 1846,
                                "loc": {
                                  "start": {
                                    "line": 50,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 50,
                                    "column": 59
                                  }
                                },
                                "id": {
                                  "type": "Identifier",
                                  "start": 1805,
                                  "end": 1815,
                                  "loc": {
                                    "start": {
                                      "line": 50,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 50,
                                      "column": 28
                                    },
                                    "identifierName": "constraint"
                                  },
                                  "name": "constraint"
                                },
                                "init": {
                                  "type": "NewExpression",
                                  "start": 1818,
                                  "end": 1846,
                                  "loc": {
                                    "start": {
                                      "line": 50,
                                      "column": 31
                                    },
                                    "end": {
                                      "line": 50,
                                      "column": 59
                                    }
                                  },
                                  "callee": {
                                    "type": "Identifier",
                                    "start": 1822,
                                    "end": 1827,
                                    "loc": {
                                      "start": {
                                        "line": 50,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 50,
                                        "column": 40
                                      },
                                      "identifierName": "Ccref"
                                    },
                                    "name": "Ccref"
                                  },
                                  "arguments": [
                                    {
                                      "type": "MemberExpression",
                                      "start": 1828,
                                      "end": 1841,
                                      "loc": {
                                        "start": {
                                          "line": 50,
                                          "column": 41
                                        },
                                        "end": {
                                          "line": 50,
                                          "column": 54
                                        }
                                      },
                                      "object": {
                                        "type": "ThisExpression",
                                        "start": 1828,
                                        "end": 1832,
                                        "loc": {
                                          "start": {
                                            "line": 50,
                                            "column": 41
                                          },
                                          "end": {
                                            "line": 50,
                                            "column": 45
                                          }
                                        }
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 1833,
                                        "end": 1841,
                                        "loc": {
                                          "start": {
                                            "line": 50,
                                            "column": 46
                                          },
                                          "end": {
                                            "line": 50,
                                            "column": 54
                                          },
                                          "identifierName": "sketcher"
                                        },
                                        "name": "sketcher"
                                      },
                                      "computed": false
                                    },
                                    {
                                      "type": "Identifier",
                                      "start": 1843,
                                      "end": 1845,
                                      "loc": {
                                        "start": {
                                          "line": 50,
                                          "column": 56
                                        },
                                        "end": {
                                          "line": 50,
                                          "column": 58
                                        },
                                        "identifierName": "id"
                                      },
                                      "name": "id"
                                    }
                                  ]
                                }
                              }
                            ],
                            "kind": "const"
                          },
                          {
                            "type": "IfStatement",
                            "start": 1860,
                            "end": 1892,
                            "loc": {
                              "start": {
                                "line": 51,
                                "column": 12
                              },
                              "end": {
                                "line": 51,
                                "column": 44
                              }
                            },
                            "test": {
                              "type": "UnaryExpression",
                              "start": 1864,
                              "end": 1881,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 16
                                },
                                "end": {
                                  "line": 51,
                                  "column": 33
                                }
                              },
                              "operator": "!",
                              "prefix": true,
                              "argument": {
                                "type": "MemberExpression",
                                "start": 1865,
                                "end": 1881,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 1865,
                                  "end": 1875,
                                  "loc": {
                                    "start": {
                                      "line": 51,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 51,
                                      "column": 27
                                    },
                                    "identifierName": "constraint"
                                  },
                                  "name": "constraint"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1876,
                                  "end": 1881,
                                  "loc": {
                                    "start": {
                                      "line": 51,
                                      "column": 28
                                    },
                                    "end": {
                                      "line": 51,
                                      "column": 33
                                    },
                                    "identifierName": "state"
                                  },
                                  "name": "state"
                                },
                                "computed": false
                              },
                              "extra": {
                                "parenthesizedArgument": false
                              }
                            },
                            "consequent": {
                              "type": "ContinueStatement",
                              "start": 1883,
                              "end": 1892,
                              "loc": {
                                "start": {
                                  "line": 51,
                                  "column": 35
                                },
                                "end": {
                                  "line": 51,
                                  "column": 44
                                }
                              },
                              "label": null,
                              "leadingComments": null,
                              "trailingComments": null
                            },
                            "alternate": null,
                            "trailingComments": [
                              {
                                "type": "CommentLine",
                                "value": " if entity is updated just before constraint is deleted (e.g. fillet point)",
                                "start": 1893,
                                "end": 1970,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 122
                                  }
                                }
                              }
                            ]
                          },
                          {
                            "type": "ExpressionStatement",
                            "start": 1983,
                            "end": 2017,
                            "loc": {
                              "start": {
                                "line": 52,
                                "column": 12
                              },
                              "end": {
                                "line": 52,
                                "column": 46
                              }
                            },
                            "expression": {
                              "type": "CallExpression",
                              "start": 1983,
                              "end": 2016,
                              "loc": {
                                "start": {
                                  "line": 52,
                                  "column": 12
                                },
                                "end": {
                                  "line": 52,
                                  "column": 45
                                }
                              },
                              "callee": {
                                "type": "MemberExpression",
                                "start": 1983,
                                "end": 2004,
                                "loc": {
                                  "start": {
                                    "line": 52,
                                    "column": 12
                                  },
                                  "end": {
                                    "line": 52,
                                    "column": 33
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 1983,
                                  "end": 1987,
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 12
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 16
                                    }
                                  },
                                  "leadingComments": null
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 1988,
                                  "end": 2004,
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 17
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 33
                                    },
                                    "identifierName": "updateConstraint"
                                  },
                                  "name": "updateConstraint"
                                },
                                "computed": false,
                                "leadingComments": null
                              },
                              "arguments": [
                                {
                                  "type": "Identifier",
                                  "start": 2005,
                                  "end": 2015,
                                  "loc": {
                                    "start": {
                                      "line": 52,
                                      "column": 34
                                    },
                                    "end": {
                                      "line": 52,
                                      "column": 44
                                    },
                                    "identifierName": "constraint"
                                  },
                                  "name": "constraint"
                                }
                              ],
                              "leadingComments": null
                            },
                            "leadingComments": [
                              {
                                "type": "CommentLine",
                                "value": " if entity is updated just before constraint is deleted (e.g. fillet point)",
                                "start": 1893,
                                "end": 1970,
                                "loc": {
                                  "start": {
                                    "line": 51,
                                    "column": 45
                                  },
                                  "end": {
                                    "line": 51,
                                    "column": 122
                                  }
                                }
                              }
                            ]
                          }
                        ],
                        "directives": []
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2039,
                "end": 2322,
                "loc": {
                  "start": {
                    "line": 56,
                    "column": 4
                  },
                  "end": {
                    "line": 62,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2039,
                  "end": 2044,
                  "loc": {
                    "start": {
                      "line": 56,
                      "column": 4
                    },
                    "end": {
                      "line": 56,
                      "column": 9
                    },
                    "identifierName": "hover"
                  },
                  "name": "hover"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2045,
                    "end": 2051,
                    "loc": {
                      "start": {
                        "line": 56,
                        "column": 10
                      },
                      "end": {
                        "line": 56,
                        "column": 16
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  },
                  {
                    "type": "Identifier",
                    "start": 2053,
                    "end": 2058,
                    "loc": {
                      "start": {
                        "line": 56,
                        "column": 18
                      },
                      "end": {
                        "line": 56,
                        "column": 23
                      },
                      "identifierName": "first"
                    },
                    "name": "first"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2060,
                  "end": 2322,
                  "loc": {
                    "start": {
                      "line": 56,
                      "column": 25
                    },
                    "end": {
                      "line": 62,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 2070,
                      "end": 2107,
                      "loc": {
                        "start": {
                          "line": 57,
                          "column": 8
                        },
                        "end": {
                          "line": 57,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 2074,
                        "end": 2098,
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 12
                          },
                          "end": {
                            "line": 57,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2074,
                          "end": 2083,
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 12
                            },
                            "end": {
                              "line": 57,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2074,
                            "end": 2078,
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 12
                              },
                              "end": {
                                "line": 57,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2079,
                            "end": 2083,
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 17
                              },
                              "end": {
                                "line": 57,
                                "column": 21
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "MemberExpression",
                          "start": 2088,
                          "end": 2098,
                          "loc": {
                            "start": {
                              "line": 57,
                              "column": 26
                            },
                            "end": {
                              "line": 57,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2088,
                            "end": 2092,
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 26
                              },
                              "end": {
                                "line": 57,
                                "column": 30
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2093,
                            "end": 2098,
                            "loc": {
                              "start": {
                                "line": 57,
                                "column": 31
                              },
                              "end": {
                                "line": 57,
                                "column": 36
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2100,
                        "end": 2107,
                        "loc": {
                          "start": {
                            "line": 57,
                            "column": 38
                          },
                          "end": {
                            "line": 57,
                            "column": 45
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 2116,
                      "end": 2150,
                      "loc": {
                        "start": {
                          "line": 58,
                          "column": 8
                        },
                        "end": {
                          "line": 58,
                          "column": 42
                        }
                      },
                      "test": {
                        "type": "CallExpression",
                        "start": 2120,
                        "end": 2141,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 12
                          },
                          "end": {
                            "line": 58,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2120,
                          "end": 2139,
                          "loc": {
                            "start": {
                              "line": 58,
                              "column": 12
                            },
                            "end": {
                              "line": 58,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2120,
                            "end": 2126,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 12
                              },
                              "end": {
                                "line": 58,
                                "column": 18
                              },
                              "identifierName": "entity"
                            },
                            "name": "entity"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2127,
                            "end": 2139,
                            "loc": {
                              "start": {
                                "line": 58,
                                "column": 19
                              },
                              "end": {
                                "line": 58,
                                "column": 31
                              },
                              "identifierName": "isConstraint"
                            },
                            "name": "isConstraint"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2143,
                        "end": 2150,
                        "loc": {
                          "start": {
                            "line": 58,
                            "column": 35
                          },
                          "end": {
                            "line": 58,
                            "column": 42
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 2159,
                      "end": 2188,
                      "loc": {
                        "start": {
                          "line": 59,
                          "column": 8
                        },
                        "end": {
                          "line": 59,
                          "column": 37
                        }
                      },
                      "test": {
                        "type": "Identifier",
                        "start": 2163,
                        "end": 2168,
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 12
                          },
                          "end": {
                            "line": 59,
                            "column": 17
                          },
                          "identifierName": "first"
                        },
                        "name": "first"
                      },
                      "consequent": {
                        "type": "ExpressionStatement",
                        "start": 2170,
                        "end": 2188,
                        "loc": {
                          "start": {
                            "line": 59,
                            "column": 19
                          },
                          "end": {
                            "line": 59,
                            "column": 37
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2170,
                          "end": 2187,
                          "loc": {
                            "start": {
                              "line": 59,
                              "column": 19
                            },
                            "end": {
                              "line": 59,
                              "column": 36
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2170,
                            "end": 2185,
                            "loc": {
                              "start": {
                                "line": 59,
                                "column": 19
                              },
                              "end": {
                                "line": 59,
                                "column": 34
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2170,
                              "end": 2174,
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 19
                                },
                                "end": {
                                  "line": 59,
                                  "column": 23
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2175,
                              "end": 2185,
                              "loc": {
                                "start": {
                                  "line": 59,
                                  "column": 24
                                },
                                "end": {
                                  "line": 59,
                                  "column": 34
                                },
                                "identifierName": "unhoverAll"
                              },
                              "name": "unhoverAll"
                            },
                            "computed": false
                          },
                          "arguments": []
                        }
                      },
                      "alternate": null
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 2197,
                      "end": 2316,
                      "loc": {
                        "start": {
                          "line": 60,
                          "column": 8
                        },
                        "end": {
                          "line": 61,
                          "column": 67
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 2202,
                        "end": 2208,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 13
                          },
                          "end": {
                            "line": 60,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 2206,
                            "end": 2208,
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 17
                              },
                              "end": {
                                "line": 60,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 2206,
                              "end": 2208,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 17
                                },
                                "end": {
                                  "line": 60,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "LogicalExpression",
                        "start": 2212,
                        "end": 2247,
                        "loc": {
                          "start": {
                            "line": 60,
                            "column": 23
                          },
                          "end": {
                            "line": 60,
                            "column": 58
                          }
                        },
                        "left": {
                          "type": "CallExpression",
                          "start": 2212,
                          "end": 2241,
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 23
                            },
                            "end": {
                              "line": 60,
                              "column": 52
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2212,
                            "end": 2230,
                            "loc": {
                              "start": {
                                "line": 60,
                                "column": 23
                              },
                              "end": {
                                "line": 60,
                                "column": 41
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2212,
                              "end": 2226,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 23
                                },
                                "end": {
                                  "line": 60,
                                  "column": 37
                                }
                              },
                              "object": {
                                "type": "ThisExpression",
                                "start": 2212,
                                "end": 2216,
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 23
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 27
                                  }
                                }
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2217,
                                "end": 2226,
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 37
                                  },
                                  "identifierName": "entityFor"
                                },
                                "name": "entityFor"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2227,
                              "end": 2230,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 38
                                },
                                "end": {
                                  "line": 60,
                                  "column": 41
                                },
                                "identifierName": "get"
                              },
                              "name": "get"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "MemberExpression",
                              "start": 2231,
                              "end": 2240,
                              "loc": {
                                "start": {
                                  "line": 60,
                                  "column": 42
                                },
                                "end": {
                                  "line": 60,
                                  "column": 51
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2231,
                                "end": 2237,
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 42
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 48
                                  },
                                  "identifierName": "entity"
                                },
                                "name": "entity"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2238,
                                "end": 2240,
                                "loc": {
                                  "start": {
                                    "line": 60,
                                    "column": 49
                                  },
                                  "end": {
                                    "line": 60,
                                    "column": 51
                                  },
                                  "identifierName": "id"
                                },
                                "name": "id"
                              },
                              "computed": false
                            }
                          ]
                        },
                        "operator": "||",
                        "right": {
                          "type": "ArrayExpression",
                          "start": 2245,
                          "end": 2247,
                          "loc": {
                            "start": {
                              "line": 60,
                              "column": 56
                            },
                            "end": {
                              "line": 60,
                              "column": 58
                            }
                          },
                          "elements": []
                        }
                      },
                      "body": {
                        "type": "ExpressionStatement",
                        "start": 2261,
                        "end": 2316,
                        "loc": {
                          "start": {
                            "line": 61,
                            "column": 12
                          },
                          "end": {
                            "line": 61,
                            "column": 67
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 2261,
                          "end": 2315,
                          "loc": {
                            "start": {
                              "line": 61,
                              "column": 12
                            },
                            "end": {
                              "line": 61,
                              "column": 66
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 2261,
                            "end": 2271,
                            "loc": {
                              "start": {
                                "line": 61,
                                "column": 12
                              },
                              "end": {
                                "line": 61,
                                "column": 22
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2261,
                              "end": 2265,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 12
                                },
                                "end": {
                                  "line": 61,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2266,
                              "end": 2271,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 17
                                },
                                "end": {
                                  "line": 61,
                                  "column": 22
                                },
                                "identifierName": "place"
                              },
                              "name": "place"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "NewExpression",
                              "start": 2272,
                              "end": 2300,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 23
                                },
                                "end": {
                                  "line": 61,
                                  "column": 51
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 2276,
                                "end": 2281,
                                "loc": {
                                  "start": {
                                    "line": 61,
                                    "column": 27
                                  },
                                  "end": {
                                    "line": 61,
                                    "column": 32
                                  },
                                  "identifierName": "Ccref"
                                },
                                "name": "Ccref"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 2282,
                                  "end": 2295,
                                  "loc": {
                                    "start": {
                                      "line": 61,
                                      "column": 33
                                    },
                                    "end": {
                                      "line": 61,
                                      "column": 46
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 2282,
                                    "end": 2286,
                                    "loc": {
                                      "start": {
                                        "line": 61,
                                        "column": 33
                                      },
                                      "end": {
                                        "line": 61,
                                        "column": 37
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2287,
                                    "end": 2295,
                                    "loc": {
                                      "start": {
                                        "line": 61,
                                        "column": 38
                                      },
                                      "end": {
                                        "line": 61,
                                        "column": 46
                                      },
                                      "identifierName": "sketcher"
                                    },
                                    "name": "sketcher"
                                  },
                                  "computed": false
                                },
                                {
                                  "type": "Identifier",
                                  "start": 2297,
                                  "end": 2299,
                                  "loc": {
                                    "start": {
                                      "line": 61,
                                      "column": 48
                                    },
                                    "end": {
                                      "line": 61,
                                      "column": 50
                                    },
                                    "identifierName": "id"
                                  },
                                  "name": "id"
                                }
                              ]
                            },
                            {
                              "type": "Identifier",
                              "start": 2302,
                              "end": 2308,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 53
                                },
                                "end": {
                                  "line": 61,
                                  "column": 59
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            {
                              "type": "BooleanLiteral",
                              "start": 2310,
                              "end": 2314,
                              "loc": {
                                "start": {
                                  "line": 61,
                                  "column": 61
                                },
                                "end": {
                                  "line": 61,
                                  "column": 65
                                }
                              },
                              "value": true
                            }
                          ]
                        }
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2328,
                "end": 2469,
                "loc": {
                  "start": {
                    "line": 64,
                    "column": 4
                  },
                  "end": {
                    "line": 68,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2328,
                  "end": 2335,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 4
                    },
                    "end": {
                      "line": 64,
                      "column": 11
                    },
                    "identifierName": "unhover"
                  },
                  "name": "unhover"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2336,
                    "end": 2342,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 12
                      },
                      "end": {
                        "line": 64,
                        "column": 18
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  },
                  {
                    "type": "Identifier",
                    "start": 2344,
                    "end": 2349,
                    "loc": {
                      "start": {
                        "line": 64,
                        "column": 20
                      },
                      "end": {
                        "line": 64,
                        "column": 25
                      },
                      "identifierName": "first"
                    },
                    "name": "first"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2351,
                  "end": 2469,
                  "loc": {
                    "start": {
                      "line": 64,
                      "column": 27
                    },
                    "end": {
                      "line": 68,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 2361,
                      "end": 2398,
                      "loc": {
                        "start": {
                          "line": 65,
                          "column": 8
                        },
                        "end": {
                          "line": 65,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 2365,
                        "end": 2389,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 12
                          },
                          "end": {
                            "line": 65,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2365,
                          "end": 2374,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 12
                            },
                            "end": {
                              "line": 65,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2365,
                            "end": 2369,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 12
                              },
                              "end": {
                                "line": 65,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2370,
                            "end": 2374,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 17
                              },
                              "end": {
                                "line": 65,
                                "column": 21
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "MemberExpression",
                          "start": 2379,
                          "end": 2389,
                          "loc": {
                            "start": {
                              "line": 65,
                              "column": 26
                            },
                            "end": {
                              "line": 65,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2379,
                            "end": 2383,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 26
                              },
                              "end": {
                                "line": 65,
                                "column": 30
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2384,
                            "end": 2389,
                            "loc": {
                              "start": {
                                "line": 65,
                                "column": 31
                              },
                              "end": {
                                "line": 65,
                                "column": 36
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2391,
                        "end": 2398,
                        "loc": {
                          "start": {
                            "line": 65,
                            "column": 38
                          },
                          "end": {
                            "line": 65,
                            "column": 45
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 2407,
                      "end": 2441,
                      "loc": {
                        "start": {
                          "line": 66,
                          "column": 8
                        },
                        "end": {
                          "line": 66,
                          "column": 42
                        }
                      },
                      "test": {
                        "type": "CallExpression",
                        "start": 2411,
                        "end": 2432,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 12
                          },
                          "end": {
                            "line": 66,
                            "column": 33
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2411,
                          "end": 2430,
                          "loc": {
                            "start": {
                              "line": 66,
                              "column": 12
                            },
                            "end": {
                              "line": 66,
                              "column": 31
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2411,
                            "end": 2417,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 12
                              },
                              "end": {
                                "line": 66,
                                "column": 18
                              },
                              "identifierName": "entity"
                            },
                            "name": "entity"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2418,
                            "end": 2430,
                            "loc": {
                              "start": {
                                "line": 66,
                                "column": 19
                              },
                              "end": {
                                "line": 66,
                                "column": 31
                              },
                              "identifierName": "isConstraint"
                            },
                            "name": "isConstraint"
                          },
                          "computed": false
                        },
                        "arguments": []
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2434,
                        "end": 2441,
                        "loc": {
                          "start": {
                            "line": 66,
                            "column": 35
                          },
                          "end": {
                            "line": 66,
                            "column": 42
                          }
                        },
                        "argument": null,
                        "leadingComments": null,
                        "trailingComments": null
                      },
                      "alternate": null,
                      "trailingComments": [
                        {
                          "type": "CommentLine",
                          "value": " do nothing",
                          "start": 2450,
                          "end": 2463,
                          "loc": {
                            "start": {
                              "line": 67,
                              "column": 8
                            },
                            "end": {
                              "line": 67,
                              "column": 21
                            }
                          }
                        }
                      ]
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2475,
                "end": 2621,
                "loc": {
                  "start": {
                    "line": 70,
                    "column": 4
                  },
                  "end": {
                    "line": 74,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2475,
                  "end": 2485,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 4
                    },
                    "end": {
                      "line": 70,
                      "column": 14
                    },
                    "identifierName": "unhoverAll"
                  },
                  "name": "unhoverAll"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [],
                "body": {
                  "type": "BlockStatement",
                  "start": 2488,
                  "end": 2621,
                  "loc": {
                    "start": {
                      "line": 70,
                      "column": 17
                    },
                    "end": {
                      "line": 74,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "IfStatement",
                      "start": 2498,
                      "end": 2535,
                      "loc": {
                        "start": {
                          "line": 71,
                          "column": 8
                        },
                        "end": {
                          "line": 71,
                          "column": 45
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 2502,
                        "end": 2526,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 12
                          },
                          "end": {
                            "line": 71,
                            "column": 36
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2502,
                          "end": 2511,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 12
                            },
                            "end": {
                              "line": 71,
                              "column": 21
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2502,
                            "end": 2506,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 12
                              },
                              "end": {
                                "line": 71,
                                "column": 16
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2507,
                            "end": 2511,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 17
                              },
                              "end": {
                                "line": 71,
                                "column": 21
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "operator": "!==",
                        "right": {
                          "type": "MemberExpression",
                          "start": 2516,
                          "end": 2526,
                          "loc": {
                            "start": {
                              "line": 71,
                              "column": 26
                            },
                            "end": {
                              "line": 71,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2516,
                            "end": 2520,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 26
                              },
                              "end": {
                                "line": 71,
                                "column": 30
                              },
                              "identifierName": "Mode"
                            },
                            "name": "Mode"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2521,
                            "end": 2526,
                            "loc": {
                              "start": {
                                "line": 71,
                                "column": 31
                              },
                              "end": {
                                "line": 71,
                                "column": 36
                              },
                              "identifierName": "Hover"
                            },
                            "name": "Hover"
                          },
                          "computed": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2528,
                        "end": 2535,
                        "loc": {
                          "start": {
                            "line": 71,
                            "column": 38
                          },
                          "end": {
                            "line": 71,
                            "column": 45
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "IfStatement",
                      "start": 2544,
                      "end": 2589,
                      "loc": {
                        "start": {
                          "line": 72,
                          "column": 8
                        },
                        "end": {
                          "line": 72,
                          "column": 53
                        }
                      },
                      "test": {
                        "type": "BinaryExpression",
                        "start": 2548,
                        "end": 2580,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 12
                          },
                          "end": {
                            "line": 72,
                            "column": 44
                          }
                        },
                        "left": {
                          "type": "MemberExpression",
                          "start": 2548,
                          "end": 2574,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 12
                            },
                            "end": {
                              "line": 72,
                              "column": 38
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2548,
                            "end": 2569,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 12
                              },
                              "end": {
                                "line": 72,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2548,
                              "end": 2552,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 12
                                },
                                "end": {
                                  "line": 72,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2553,
                              "end": 2569,
                              "loc": {
                                "start": {
                                  "line": 72,
                                  "column": 17
                                },
                                "end": {
                                  "line": 72,
                                  "column": 33
                                },
                                "identifierName": "visiblePositions"
                              },
                              "name": "visiblePositions"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2570,
                            "end": 2574,
                            "loc": {
                              "start": {
                                "line": 72,
                                "column": 34
                              },
                              "end": {
                                "line": 72,
                                "column": 38
                              },
                              "identifierName": "size"
                            },
                            "name": "size"
                          },
                          "computed": false
                        },
                        "operator": "===",
                        "right": {
                          "type": "NumericLiteral",
                          "start": 2579,
                          "end": 2580,
                          "loc": {
                            "start": {
                              "line": 72,
                              "column": 43
                            },
                            "end": {
                              "line": 72,
                              "column": 44
                            }
                          },
                          "extra": {
                            "rawValue": 0,
                            "raw": "0"
                          },
                          "value": 0
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2582,
                        "end": 2589,
                        "loc": {
                          "start": {
                            "line": 72,
                            "column": 46
                          },
                          "end": {
                            "line": 72,
                            "column": 53
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2598,
                      "end": 2615,
                      "loc": {
                        "start": {
                          "line": 73,
                          "column": 8
                        },
                        "end": {
                          "line": 73,
                          "column": 25
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2598,
                        "end": 2614,
                        "loc": {
                          "start": {
                            "line": 73,
                            "column": 8
                          },
                          "end": {
                            "line": 73,
                            "column": 24
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2598,
                          "end": 2612,
                          "loc": {
                            "start": {
                              "line": 73,
                              "column": 8
                            },
                            "end": {
                              "line": 73,
                              "column": 22
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 2598,
                            "end": 2602,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 8
                              },
                              "end": {
                                "line": 73,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2603,
                            "end": 2612,
                            "loc": {
                              "start": {
                                "line": 73,
                                "column": 13
                              },
                              "end": {
                                "line": 73,
                                "column": 22
                              },
                              "identifierName": "updateAll"
                            },
                            "name": "updateAll"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 2627,
                "end": 3899,
                "loc": {
                  "start": {
                    "line": 76,
                    "column": 4
                  },
                  "end": {
                    "line": 110,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 2627,
                  "end": 2632,
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 4
                    },
                    "end": {
                      "line": 76,
                      "column": 9
                    },
                    "identifierName": "place"
                  },
                  "name": "place"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "Identifier",
                    "start": 2633,
                    "end": 2643,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 10
                      },
                      "end": {
                        "line": 76,
                        "column": 20
                      },
                      "identifierName": "constraint"
                    },
                    "name": "constraint"
                  },
                  {
                    "type": "Identifier",
                    "start": 2645,
                    "end": 2651,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 22
                      },
                      "end": {
                        "line": 76,
                        "column": 28
                      },
                      "identifierName": "entity"
                    },
                    "name": "entity"
                  },
                  {
                    "type": "Identifier",
                    "start": 2653,
                    "end": 2660,
                    "loc": {
                      "start": {
                        "line": 76,
                        "column": 30
                      },
                      "end": {
                        "line": 76,
                        "column": 37
                      },
                      "identifierName": "visible"
                    },
                    "name": "visible"
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 2662,
                  "end": 3899,
                  "loc": {
                    "start": {
                      "line": 76,
                      "column": 39
                    },
                    "end": {
                      "line": 110,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "VariableDeclaration",
                      "start": 2672,
                      "end": 2773,
                      "loc": {
                        "start": {
                          "line": 77,
                          "column": 8
                        },
                        "end": {
                          "line": 77,
                          "column": 109
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 2678,
                          "end": 2708,
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 14
                            },
                            "end": {
                              "line": 77,
                              "column": 44
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2678,
                            "end": 2686,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 14
                              },
                              "end": {
                                "line": 77,
                                "column": 22
                              },
                              "identifierName": "graphics"
                            },
                            "name": "graphics"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 2689,
                            "end": 2708,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 25
                              },
                              "end": {
                                "line": 77,
                                "column": 44
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2689,
                              "end": 2699,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 25
                                },
                                "end": {
                                  "line": 77,
                                  "column": 35
                                },
                                "identifierName": "constraint"
                              },
                              "name": "constraint"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2700,
                              "end": 2708,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 36
                                },
                                "end": {
                                  "line": 77,
                                  "column": 44
                                },
                                "identifierName": "graphics"
                              },
                              "name": "graphics"
                            },
                            "computed": false
                          }
                        },
                        {
                          "type": "VariableDeclarator",
                          "start": 2710,
                          "end": 2748,
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 46
                            },
                            "end": {
                              "line": 77,
                              "column": 84
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2710,
                            "end": 2718,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 46
                              },
                              "end": {
                                "line": 77,
                                "column": 54
                              },
                              "identifierName": "position"
                            },
                            "name": "position"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 2721,
                            "end": 2748,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 57
                              },
                              "end": {
                                "line": 77,
                                "column": 84
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 2721,
                              "end": 2739,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 57
                                },
                                "end": {
                                  "line": 77,
                                  "column": 75
                                }
                              },
                              "object": {
                                "type": "Identifier",
                                "start": 2721,
                                "end": 2729,
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 57
                                  },
                                  "end": {
                                    "line": 77,
                                    "column": 65
                                  },
                                  "identifierName": "graphics"
                                },
                                "name": "graphics"
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 2730,
                                "end": 2739,
                                "loc": {
                                  "start": {
                                    "line": 77,
                                    "column": 66
                                  },
                                  "end": {
                                    "line": 77,
                                    "column": 75
                                  },
                                  "identifierName": "localMesh"
                                },
                                "name": "localMesh"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2740,
                              "end": 2748,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 76
                                },
                                "end": {
                                  "line": 77,
                                  "column": 84
                                },
                                "identifierName": "position"
                              },
                              "name": "position"
                            },
                            "computed": false
                          }
                        },
                        {
                          "type": "VariableDeclarator",
                          "start": 2750,
                          "end": 2772,
                          "loc": {
                            "start": {
                              "line": 77,
                              "column": 86
                            },
                            "end": {
                              "line": 77,
                              "column": 108
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 2750,
                            "end": 2752,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 86
                              },
                              "end": {
                                "line": 77,
                                "column": 88
                              },
                              "identifierName": "gp"
                            },
                            "name": "gp"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 2755,
                            "end": 2772,
                            "loc": {
                              "start": {
                                "line": 77,
                                "column": 91
                              },
                              "end": {
                                "line": 77,
                                "column": 108
                              }
                            },
                            "object": {
                              "type": "Identifier",
                              "start": 2755,
                              "end": 2761,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 91
                                },
                                "end": {
                                  "line": 77,
                                  "column": 97
                                },
                                "identifierName": "entity"
                              },
                              "name": "entity"
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2762,
                              "end": 2772,
                              "loc": {
                                "start": {
                                  "line": 77,
                                  "column": 98
                                },
                                "end": {
                                  "line": 77,
                                  "column": 108
                                },
                                "identifierName": "geomParams"
                              },
                              "name": "geomParams"
                            },
                            "computed": false
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2782,
                      "end": 2821,
                      "loc": {
                        "start": {
                          "line": 78,
                          "column": 8
                        },
                        "end": {
                          "line": 78,
                          "column": 47
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 2782,
                        "end": 2820,
                        "loc": {
                          "start": {
                            "line": 78,
                            "column": 8
                          },
                          "end": {
                            "line": 78,
                            "column": 46
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 2782,
                          "end": 2810,
                          "loc": {
                            "start": {
                              "line": 78,
                              "column": 8
                            },
                            "end": {
                              "line": 78,
                              "column": 36
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 2782,
                            "end": 2803,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 8
                              },
                              "end": {
                                "line": 78,
                                "column": 29
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 2782,
                              "end": 2786,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 8
                                },
                                "end": {
                                  "line": 78,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 2787,
                              "end": 2803,
                              "loc": {
                                "start": {
                                  "line": 78,
                                  "column": 13
                                },
                                "end": {
                                  "line": 78,
                                  "column": 29
                                },
                                "identifierName": "visiblePositions"
                              },
                              "name": "visiblePositions"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2804,
                            "end": 2810,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 30
                              },
                              "end": {
                                "line": 78,
                                "column": 36
                              },
                              "identifierName": "delete"
                            },
                            "name": "delete"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 2811,
                            "end": 2819,
                            "loc": {
                              "start": {
                                "line": 78,
                                "column": 37
                              },
                              "end": {
                                "line": 78,
                                "column": 45
                              },
                              "identifierName": "position"
                            },
                            "name": "position"
                          }
                        ]
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 2830,
                      "end": 2857,
                      "loc": {
                        "start": {
                          "line": 79,
                          "column": 8
                        },
                        "end": {
                          "line": 79,
                          "column": 35
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 2830,
                        "end": 2856,
                        "loc": {
                          "start": {
                            "line": 79,
                            "column": 8
                          },
                          "end": {
                            "line": 79,
                            "column": 34
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 2830,
                          "end": 2846,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 8
                            },
                            "end": {
                              "line": 79,
                              "column": 24
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 2830,
                            "end": 2838,
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 8
                              },
                              "end": {
                                "line": 79,
                                "column": 16
                              },
                              "identifierName": "graphics"
                            },
                            "name": "graphics"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 2839,
                            "end": 2846,
                            "loc": {
                              "start": {
                                "line": 79,
                                "column": 17
                              },
                              "end": {
                                "line": 79,
                                "column": 24
                              },
                              "identifierName": "visible"
                            },
                            "name": "visible"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 2849,
                          "end": 2856,
                          "loc": {
                            "start": {
                              "line": 79,
                              "column": 27
                            },
                            "end": {
                              "line": 79,
                              "column": 34
                            },
                            "identifierName": "visible"
                          },
                          "name": "visible"
                        }
                      }
                    },
                    {
                      "type": "IfStatement",
                      "start": 2866,
                      "end": 2887,
                      "loc": {
                        "start": {
                          "line": 80,
                          "column": 8
                        },
                        "end": {
                          "line": 80,
                          "column": 29
                        }
                      },
                      "test": {
                        "type": "UnaryExpression",
                        "start": 2870,
                        "end": 2878,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 12
                          },
                          "end": {
                            "line": 80,
                            "column": 20
                          }
                        },
                        "operator": "!",
                        "prefix": true,
                        "argument": {
                          "type": "Identifier",
                          "start": 2871,
                          "end": 2878,
                          "loc": {
                            "start": {
                              "line": 80,
                              "column": 13
                            },
                            "end": {
                              "line": 80,
                              "column": 20
                            },
                            "identifierName": "visible"
                          },
                          "name": "visible"
                        },
                        "extra": {
                          "parenthesizedArgument": false
                        }
                      },
                      "consequent": {
                        "type": "ReturnStatement",
                        "start": 2880,
                        "end": 2887,
                        "loc": {
                          "start": {
                            "line": 80,
                            "column": 22
                          },
                          "end": {
                            "line": 80,
                            "column": 29
                          }
                        },
                        "argument": null
                      },
                      "alternate": null
                    },
                    {
                      "type": "SwitchStatement",
                      "start": 2896,
                      "end": 3415,
                      "loc": {
                        "start": {
                          "line": 81,
                          "column": 8
                        },
                        "end": {
                          "line": 97,
                          "column": 9
                        }
                      },
                      "discriminant": {
                        "type": "MemberExpression",
                        "start": 2904,
                        "end": 2916,
                        "loc": {
                          "start": {
                            "line": 81,
                            "column": 16
                          },
                          "end": {
                            "line": 81,
                            "column": 28
                          }
                        },
                        "object": {
                          "type": "Identifier",
                          "start": 2904,
                          "end": 2910,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 16
                            },
                            "end": {
                              "line": 81,
                              "column": 22
                            },
                            "identifierName": "entity"
                          },
                          "name": "entity"
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 2911,
                          "end": 2916,
                          "loc": {
                            "start": {
                              "line": 81,
                              "column": 23
                            },
                            "end": {
                              "line": 81,
                              "column": 28
                            },
                            "identifierName": "class"
                          },
                          "name": "class"
                        },
                        "computed": false
                      },
                      "cases": [
                        {
                          "type": "SwitchCase",
                          "start": 2932,
                          "end": 3012,
                          "loc": {
                            "start": {
                              "line": 82,
                              "column": 12
                            },
                            "end": {
                              "line": 84,
                              "column": 22
                            }
                          },
                          "consequent": [
                            {
                              "type": "ExpressionStatement",
                              "start": 2965,
                              "end": 2989,
                              "loc": {
                                "start": {
                                  "line": 83,
                                  "column": 16
                                },
                                "end": {
                                  "line": 83,
                                  "column": 40
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 2965,
                                "end": 2988,
                                "loc": {
                                  "start": {
                                    "line": 83,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 83,
                                    "column": 39
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 2965,
                                  "end": 2978,
                                  "loc": {
                                    "start": {
                                      "line": 83,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 83,
                                      "column": 29
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 2965,
                                    "end": 2973,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 24
                                      },
                                      "identifierName": "position"
                                    },
                                    "name": "position"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 2974,
                                    "end": 2978,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 29
                                      },
                                      "identifierName": "copy"
                                    },
                                    "name": "copy"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 2979,
                                    "end": 2987,
                                    "loc": {
                                      "start": {
                                        "line": 83,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 83,
                                        "column": 38
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 2979,
                                      "end": 2981,
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 32
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 2982,
                                      "end": 2987,
                                      "loc": {
                                        "start": {
                                          "line": 83,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 83,
                                          "column": 38
                                        },
                                        "identifierName": "start"
                                      },
                                      "name": "start"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            },
                            {
                              "type": "BreakStatement",
                              "start": 3006,
                              "end": 3012,
                              "loc": {
                                "start": {
                                  "line": 84,
                                  "column": 16
                                },
                                "end": {
                                  "line": 84,
                                  "column": 22
                                }
                              },
                              "label": null
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 2937,
                            "end": 2947,
                            "loc": {
                              "start": {
                                "line": 82,
                                "column": 17
                              },
                              "end": {
                                "line": 82,
                                "column": 27
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Point",
                              "raw": "'CC_Point'"
                            },
                            "value": "CC_Point"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 3025,
                          "end": 3124,
                          "loc": {
                            "start": {
                              "line": 85,
                              "column": 12
                            },
                            "end": {
                              "line": 87,
                              "column": 22
                            }
                          },
                          "consequent": [
                            {
                              "type": "ExpressionStatement",
                              "start": 3057,
                              "end": 3101,
                              "loc": {
                                "start": {
                                  "line": 86,
                                  "column": 16
                                },
                                "end": {
                                  "line": 86,
                                  "column": 60
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3057,
                                "end": 3100,
                                "loc": {
                                  "start": {
                                    "line": 86,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 86,
                                    "column": 59
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3057,
                                  "end": 3077,
                                  "loc": {
                                    "start": {
                                      "line": 86,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 86,
                                      "column": 36
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3057,
                                    "end": 3065,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 24
                                      },
                                      "identifierName": "position"
                                    },
                                    "name": "position"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3066,
                                    "end": 3077,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 36
                                      },
                                      "identifierName": "lerpVectors"
                                    },
                                    "name": "lerpVectors"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 3078,
                                    "end": 3086,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 37
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 45
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3078,
                                      "end": 3080,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 37
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 39
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3081,
                                      "end": 3086,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 40
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 45
                                        },
                                        "identifierName": "start"
                                      },
                                      "name": "start"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "MemberExpression",
                                    "start": 3088,
                                    "end": 3094,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 47
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 53
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3088,
                                      "end": 3090,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 49
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3091,
                                      "end": 3094,
                                      "loc": {
                                        "start": {
                                          "line": 86,
                                          "column": 50
                                        },
                                        "end": {
                                          "line": 86,
                                          "column": 53
                                        },
                                        "identifierName": "end"
                                      },
                                      "name": "end"
                                    },
                                    "computed": false
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 3096,
                                    "end": 3099,
                                    "loc": {
                                      "start": {
                                        "line": 86,
                                        "column": 55
                                      },
                                      "end": {
                                        "line": 86,
                                        "column": 58
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0.5,
                                      "raw": "0.5"
                                    },
                                    "value": 0.5
                                  }
                                ]
                              }
                            },
                            {
                              "type": "BreakStatement",
                              "start": 3118,
                              "end": 3124,
                              "loc": {
                                "start": {
                                  "line": 87,
                                  "column": 16
                                },
                                "end": {
                                  "line": 87,
                                  "column": 22
                                }
                              },
                              "label": null
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 3030,
                            "end": 3039,
                            "loc": {
                              "start": {
                                "line": 85,
                                "column": 17
                              },
                              "end": {
                                "line": 85,
                                "column": 26
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Line",
                              "raw": "'CC_Line'"
                            },
                            "value": "CC_Line"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 3137,
                          "end": 3227,
                          "loc": {
                            "start": {
                              "line": 88,
                              "column": 12
                            },
                            "end": {
                              "line": 90,
                              "column": 22
                            }
                          },
                          "consequent": [
                            {
                              "type": "ExpressionStatement",
                              "start": 3168,
                              "end": 3204,
                              "loc": {
                                "start": {
                                  "line": 89,
                                  "column": 16
                                },
                                "end": {
                                  "line": 89,
                                  "column": 52
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3168,
                                "end": 3203,
                                "loc": {
                                  "start": {
                                    "line": 89,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 89,
                                    "column": 51
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3168,
                                  "end": 3181,
                                  "loc": {
                                    "start": {
                                      "line": 89,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 89,
                                      "column": 29
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3168,
                                    "end": 3176,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 24
                                      },
                                      "identifierName": "position"
                                    },
                                    "name": "position"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3177,
                                    "end": 3181,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 29
                                      },
                                      "identifierName": "copy"
                                    },
                                    "name": "copy"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 3182,
                                    "end": 3202,
                                    "loc": {
                                      "start": {
                                        "line": 89,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 89,
                                        "column": 50
                                      }
                                    },
                                    "object": {
                                      "type": "CallExpression",
                                      "start": 3182,
                                      "end": 3198,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 46
                                        }
                                      },
                                      "callee": {
                                        "type": "Identifier",
                                        "start": 3182,
                                        "end": 3194,
                                        "loc": {
                                          "start": {
                                            "line": 89,
                                            "column": 30
                                          },
                                          "end": {
                                            "line": 89,
                                            "column": 42
                                          },
                                          "identifierName": "getArcAngles"
                                        },
                                        "name": "getArcAngles"
                                      },
                                      "arguments": [
                                        {
                                          "type": "Identifier",
                                          "start": 3195,
                                          "end": 3197,
                                          "loc": {
                                            "start": {
                                              "line": 89,
                                              "column": 43
                                            },
                                            "end": {
                                              "line": 89,
                                              "column": 45
                                            },
                                            "identifierName": "gp"
                                          },
                                          "name": "gp"
                                        }
                                      ]
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3199,
                                      "end": 3202,
                                      "loc": {
                                        "start": {
                                          "line": 89,
                                          "column": 47
                                        },
                                        "end": {
                                          "line": 89,
                                          "column": 50
                                        },
                                        "identifierName": "mid"
                                      },
                                      "name": "mid"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            },
                            {
                              "type": "BreakStatement",
                              "start": 3221,
                              "end": 3227,
                              "loc": {
                                "start": {
                                  "line": 90,
                                  "column": 16
                                },
                                "end": {
                                  "line": 90,
                                  "column": 22
                                }
                              },
                              "label": null
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 3142,
                            "end": 3150,
                            "loc": {
                              "start": {
                                "line": 88,
                                "column": 17
                              },
                              "end": {
                                "line": 88,
                                "column": 25
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Arc",
                              "raw": "'CC_Arc'"
                            },
                            "value": "CC_Arc"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 3240,
                          "end": 3322,
                          "loc": {
                            "start": {
                              "line": 91,
                              "column": 12
                            },
                            "end": {
                              "line": 93,
                              "column": 22
                            }
                          },
                          "consequent": [
                            {
                              "type": "ExpressionStatement",
                              "start": 3274,
                              "end": 3299,
                              "loc": {
                                "start": {
                                  "line": 92,
                                  "column": 16
                                },
                                "end": {
                                  "line": 92,
                                  "column": 41
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3274,
                                "end": 3298,
                                "loc": {
                                  "start": {
                                    "line": 92,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 92,
                                    "column": 40
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3274,
                                  "end": 3287,
                                  "loc": {
                                    "start": {
                                      "line": 92,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 92,
                                      "column": 29
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3274,
                                    "end": 3282,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 24
                                      },
                                      "identifierName": "position"
                                    },
                                    "name": "position"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3283,
                                    "end": 3287,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 29
                                      },
                                      "identifierName": "copy"
                                    },
                                    "name": "copy"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "MemberExpression",
                                    "start": 3288,
                                    "end": 3297,
                                    "loc": {
                                      "start": {
                                        "line": 92,
                                        "column": 30
                                      },
                                      "end": {
                                        "line": 92,
                                        "column": 39
                                      }
                                    },
                                    "object": {
                                      "type": "Identifier",
                                      "start": 3288,
                                      "end": 3290,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 30
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 32
                                        },
                                        "identifierName": "gp"
                                      },
                                      "name": "gp"
                                    },
                                    "property": {
                                      "type": "Identifier",
                                      "start": 3291,
                                      "end": 3297,
                                      "loc": {
                                        "start": {
                                          "line": 92,
                                          "column": 33
                                        },
                                        "end": {
                                          "line": 92,
                                          "column": 39
                                        },
                                        "identifierName": "center"
                                      },
                                      "name": "center"
                                    },
                                    "computed": false
                                  }
                                ]
                              }
                            },
                            {
                              "type": "BreakStatement",
                              "start": 3316,
                              "end": 3322,
                              "loc": {
                                "start": {
                                  "line": 93,
                                  "column": 16
                                },
                                "end": {
                                  "line": 93,
                                  "column": 22
                                }
                              },
                              "label": null
                            }
                          ],
                          "test": {
                            "type": "StringLiteral",
                            "start": 3245,
                            "end": 3256,
                            "loc": {
                              "start": {
                                "line": 91,
                                "column": 17
                              },
                              "end": {
                                "line": 91,
                                "column": 28
                              }
                            },
                            "extra": {
                              "rawValue": "CC_Circle",
                              "raw": "'CC_Circle'"
                            },
                            "value": "CC_Circle"
                          }
                        },
                        {
                          "type": "SwitchCase",
                          "start": 3335,
                          "end": 3405,
                          "loc": {
                            "start": {
                              "line": 94,
                              "column": 12
                            },
                            "end": {
                              "line": 96,
                              "column": 22
                            }
                          },
                          "consequent": [
                            {
                              "type": "ExpressionStatement",
                              "start": 3360,
                              "end": 3382,
                              "loc": {
                                "start": {
                                  "line": 95,
                                  "column": 16
                                },
                                "end": {
                                  "line": 95,
                                  "column": 38
                                }
                              },
                              "expression": {
                                "type": "CallExpression",
                                "start": 3360,
                                "end": 3381,
                                "loc": {
                                  "start": {
                                    "line": 95,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 95,
                                    "column": 37
                                  }
                                },
                                "callee": {
                                  "type": "MemberExpression",
                                  "start": 3360,
                                  "end": 3372,
                                  "loc": {
                                    "start": {
                                      "line": 95,
                                      "column": 16
                                    },
                                    "end": {
                                      "line": 95,
                                      "column": 28
                                    }
                                  },
                                  "object": {
                                    "type": "Identifier",
                                    "start": 3360,
                                    "end": 3368,
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 16
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 24
                                      },
                                      "identifierName": "position"
                                    },
                                    "name": "position"
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 3369,
                                    "end": 3372,
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 25
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 28
                                      },
                                      "identifierName": "set"
                                    },
                                    "name": "set"
                                  },
                                  "computed": false
                                },
                                "arguments": [
                                  {
                                    "type": "NumericLiteral",
                                    "start": 3373,
                                    "end": 3374,
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 29
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 30
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 3376,
                                    "end": 3377,
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 32
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 33
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  },
                                  {
                                    "type": "NumericLiteral",
                                    "start": 3379,
                                    "end": 3380,
                                    "loc": {
                                      "start": {
                                        "line": 95,
                                        "column": 35
                                      },
                                      "end": {
                                        "line": 95,
                                        "column": 36
                                      }
                                    },
                                    "extra": {
                                      "rawValue": 0,
                                      "raw": "0"
                                    },
                                    "value": 0
                                  }
                                ]
                              }
                            },
                            {
                              "type": "BreakStatement",
                              "start": 3399,
                              "end": 3405,
                              "loc": {
                                "start": {
                                  "line": 96,
                                  "column": 16
                                },
                                "end": {
                                  "line": 96,
                                  "column": 22
                                }
                              },
                              "label": null
                            }
                          ],
                          "test": null
                        }
                      ]
                    },
                    {
                      "type": "VariableDeclaration",
                      "start": 3424,
                      "end": 3461,
                      "loc": {
                        "start": {
                          "line": 98,
                          "column": 8
                        },
                        "end": {
                          "line": 98,
                          "column": 45
                        }
                      },
                      "declarations": [
                        {
                          "type": "VariableDeclarator",
                          "start": 3430,
                          "end": 3460,
                          "loc": {
                            "start": {
                              "line": 98,
                              "column": 14
                            },
                            "end": {
                              "line": 98,
                              "column": 44
                            }
                          },
                          "id": {
                            "type": "Identifier",
                            "start": 3430,
                            "end": 3431,
                            "loc": {
                              "start": {
                                "line": 98,
                                "column": 14
                              },
                              "end": {
                                "line": 98,
                                "column": 15
                              },
                              "identifierName": "s"
                            },
                            "name": "s"
                          },
                          "init": {
                            "type": "MemberExpression",
                            "start": 3434,
                            "end": 3460,
                            "loc": {
                              "start": {
                                "line": 98,
                                "column": 18
                              },
                              "end": {
                                "line": 98,
                                "column": 44
                              }
                            },
                            "object": {
                              "type": "MemberExpression",
                              "start": 3434,
                              "end": 3458,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 18
                                },
                                "end": {
                                  "line": 98,
                                  "column": 42
                                }
                              },
                              "object": {
                                "type": "MemberExpression",
                                "start": 3434,
                                "end": 3452,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 18
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 36
                                  }
                                },
                                "object": {
                                  "type": "Identifier",
                                  "start": 3434,
                                  "end": 3442,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 18
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 26
                                    },
                                    "identifierName": "graphics"
                                  },
                                  "name": "graphics"
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3443,
                                  "end": 3452,
                                  "loc": {
                                    "start": {
                                      "line": 98,
                                      "column": 27
                                    },
                                    "end": {
                                      "line": 98,
                                      "column": 36
                                    },
                                    "identifierName": "localMesh"
                                  },
                                  "name": "localMesh"
                                },
                                "computed": false
                              },
                              "property": {
                                "type": "Identifier",
                                "start": 3453,
                                "end": 3458,
                                "loc": {
                                  "start": {
                                    "line": 98,
                                    "column": 37
                                  },
                                  "end": {
                                    "line": 98,
                                    "column": 42
                                  },
                                  "identifierName": "scale"
                                },
                                "name": "scale"
                              },
                              "computed": false
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3459,
                              "end": 3460,
                              "loc": {
                                "start": {
                                  "line": 98,
                                  "column": 43
                                },
                                "end": {
                                  "line": 98,
                                  "column": 44
                                },
                                "identifierName": "y"
                              },
                              "name": "y"
                            },
                            "computed": false
                          }
                        }
                      ],
                      "kind": "const"
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3470,
                      "end": 3486,
                      "loc": {
                        "start": {
                          "line": 99,
                          "column": 8
                        },
                        "end": {
                          "line": 99,
                          "column": 24
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3470,
                        "end": 3485,
                        "loc": {
                          "start": {
                            "line": 99,
                            "column": 8
                          },
                          "end": {
                            "line": 99,
                            "column": 23
                          }
                        },
                        "operator": "-=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3470,
                          "end": 3480,
                          "loc": {
                            "start": {
                              "line": 99,
                              "column": 8
                            },
                            "end": {
                              "line": 99,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3470,
                            "end": 3478,
                            "loc": {
                              "start": {
                                "line": 99,
                                "column": 8
                              },
                              "end": {
                                "line": 99,
                                "column": 16
                              },
                              "identifierName": "position"
                            },
                            "name": "position"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3479,
                            "end": 3480,
                            "loc": {
                              "start": {
                                "line": 99,
                                "column": 17
                              },
                              "end": {
                                "line": 99,
                                "column": 18
                              },
                              "identifierName": "x"
                            },
                            "name": "x"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 3484,
                          "end": 3485,
                          "loc": {
                            "start": {
                              "line": 99,
                              "column": 22
                            },
                            "end": {
                              "line": 99,
                              "column": 23
                            },
                            "identifierName": "s"
                          },
                          "name": "s"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3495,
                      "end": 3511,
                      "loc": {
                        "start": {
                          "line": 100,
                          "column": 8
                        },
                        "end": {
                          "line": 100,
                          "column": 24
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3495,
                        "end": 3510,
                        "loc": {
                          "start": {
                            "line": 100,
                            "column": 8
                          },
                          "end": {
                            "line": 100,
                            "column": 23
                          }
                        },
                        "operator": "+=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3495,
                          "end": 3505,
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 8
                            },
                            "end": {
                              "line": 100,
                              "column": 18
                            }
                          },
                          "object": {
                            "type": "Identifier",
                            "start": 3495,
                            "end": 3503,
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 8
                              },
                              "end": {
                                "line": 100,
                                "column": 16
                              },
                              "identifierName": "position"
                            },
                            "name": "position"
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3504,
                            "end": 3505,
                            "loc": {
                              "start": {
                                "line": 100,
                                "column": 17
                              },
                              "end": {
                                "line": 100,
                                "column": 18
                              },
                              "identifierName": "y"
                            },
                            "name": "y"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 3509,
                          "end": 3510,
                          "loc": {
                            "start": {
                              "line": 100,
                              "column": 22
                            },
                            "end": {
                              "line": 100,
                              "column": 23
                            },
                            "identifierName": "s"
                          },
                          "name": "s"
                        }
                      }
                    },
                    {
                      "type": "LabeledStatement",
                      "start": 3520,
                      "end": 3848,
                      "loc": {
                        "start": {
                          "line": 101,
                          "column": 8
                        },
                        "end": {
                          "line": 108,
                          "column": 9
                        }
                      },
                      "body": {
                        "type": "ForStatement",
                        "start": 3531,
                        "end": 3848,
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 19
                          },
                          "end": {
                            "line": 108,
                            "column": 9
                          }
                        },
                        "init": {
                          "type": "VariableDeclaration",
                          "start": 3536,
                          "end": 3549,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 24
                            },
                            "end": {
                              "line": 101,
                              "column": 37
                            }
                          },
                          "declarations": [
                            {
                              "type": "VariableDeclarator",
                              "start": 3540,
                              "end": 3549,
                              "loc": {
                                "start": {
                                  "line": 101,
                                  "column": 28
                                },
                                "end": {
                                  "line": 101,
                                  "column": 37
                                }
                              },
                              "id": {
                                "type": "Identifier",
                                "start": 3540,
                                "end": 3545,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 28
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 33
                                  },
                                  "identifierName": "tries"
                                },
                                "name": "tries"
                              },
                              "init": {
                                "type": "NumericLiteral",
                                "start": 3548,
                                "end": 3549,
                                "loc": {
                                  "start": {
                                    "line": 101,
                                    "column": 36
                                  },
                                  "end": {
                                    "line": 101,
                                    "column": 37
                                  }
                                },
                                "extra": {
                                  "rawValue": 0,
                                  "raw": "0"
                                },
                                "value": 0
                              }
                            }
                          ],
                          "kind": "let"
                        },
                        "test": {
                          "type": "BinaryExpression",
                          "start": 3551,
                          "end": 3561,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 39
                            },
                            "end": {
                              "line": 101,
                              "column": 49
                            }
                          },
                          "left": {
                            "type": "Identifier",
                            "start": 3551,
                            "end": 3556,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 39
                              },
                              "end": {
                                "line": 101,
                                "column": 44
                              },
                              "identifierName": "tries"
                            },
                            "name": "tries"
                          },
                          "operator": "<",
                          "right": {
                            "type": "NumericLiteral",
                            "start": 3559,
                            "end": 3561,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 47
                              },
                              "end": {
                                "line": 101,
                                "column": 49
                              }
                            },
                            "extra": {
                              "rawValue": 10,
                              "raw": "10"
                            },
                            "value": 10
                          }
                        },
                        "update": {
                          "type": "UpdateExpression",
                          "start": 3563,
                          "end": 3570,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 51
                            },
                            "end": {
                              "line": 101,
                              "column": 58
                            }
                          },
                          "operator": "++",
                          "prefix": true,
                          "argument": {
                            "type": "Identifier",
                            "start": 3565,
                            "end": 3570,
                            "loc": {
                              "start": {
                                "line": 101,
                                "column": 53
                              },
                              "end": {
                                "line": 101,
                                "column": 58
                              },
                              "identifierName": "tries"
                            },
                            "name": "tries"
                          },
                          "extra": {
                            "parenthesizedArgument": false
                          }
                        },
                        "body": {
                          "type": "BlockStatement",
                          "start": 3572,
                          "end": 3848,
                          "loc": {
                            "start": {
                              "line": 101,
                              "column": 60
                            },
                            "end": {
                              "line": 108,
                              "column": 9
                            }
                          },
                          "body": [
                            {
                              "type": "ForOfStatement",
                              "start": 3586,
                              "end": 3819,
                              "loc": {
                                "start": {
                                  "line": 102,
                                  "column": 12
                                },
                                "end": {
                                  "line": 106,
                                  "column": 17
                                }
                              },
                              "left": {
                                "type": "VariableDeclaration",
                                "start": 3591,
                                "end": 3610,
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 17
                                  },
                                  "end": {
                                    "line": 102,
                                    "column": 36
                                  }
                                },
                                "declarations": [
                                  {
                                    "type": "VariableDeclarator",
                                    "start": 3595,
                                    "end": 3610,
                                    "loc": {
                                      "start": {
                                        "line": 102,
                                        "column": 21
                                      },
                                      "end": {
                                        "line": 102,
                                        "column": 36
                                      }
                                    },
                                    "id": {
                                      "type": "Identifier",
                                      "start": 3595,
                                      "end": 3610,
                                      "loc": {
                                        "start": {
                                          "line": 102,
                                          "column": 21
                                        },
                                        "end": {
                                          "line": 102,
                                          "column": 36
                                        },
                                        "identifierName": "visiblePosition"
                                      },
                                      "name": "visiblePosition"
                                    },
                                    "init": null
                                  }
                                ],
                                "kind": "let"
                              },
                              "right": {
                                "type": "MemberExpression",
                                "start": 3614,
                                "end": 3635,
                                "loc": {
                                  "start": {
                                    "line": 102,
                                    "column": 40
                                  },
                                  "end": {
                                    "line": 102,
                                    "column": 61
                                  }
                                },
                                "object": {
                                  "type": "ThisExpression",
                                  "start": 3614,
                                  "end": 3618,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 40
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 44
                                    }
                                  }
                                },
                                "property": {
                                  "type": "Identifier",
                                  "start": 3619,
                                  "end": 3635,
                                  "loc": {
                                    "start": {
                                      "line": 102,
                                      "column": 45
                                    },
                                    "end": {
                                      "line": 102,
                                      "column": 61
                                    },
                                    "identifierName": "visiblePositions"
                                  },
                                  "name": "visiblePositions"
                                },
                                "computed": false
                              },
                              "body": {
                                "type": "IfStatement",
                                "start": 3653,
                                "end": 3819,
                                "loc": {
                                  "start": {
                                    "line": 103,
                                    "column": 16
                                  },
                                  "end": {
                                    "line": 106,
                                    "column": 17
                                  }
                                },
                                "test": {
                                  "type": "BinaryExpression",
                                  "start": 3657,
                                  "end": 3708,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 20
                                    },
                                    "end": {
                                      "line": 103,
                                      "column": 71
                                    }
                                  },
                                  "left": {
                                    "type": "CallExpression",
                                    "start": 3657,
                                    "end": 3700,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 20
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 63
                                      }
                                    },
                                    "callee": {
                                      "type": "MemberExpression",
                                      "start": 3657,
                                      "end": 3683,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 46
                                        }
                                      },
                                      "object": {
                                        "type": "Identifier",
                                        "start": 3657,
                                        "end": 3665,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 28
                                          },
                                          "identifierName": "position"
                                        },
                                        "name": "position"
                                      },
                                      "property": {
                                        "type": "Identifier",
                                        "start": 3666,
                                        "end": 3683,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 46
                                          },
                                          "identifierName": "distanceToSquared"
                                        },
                                        "name": "distanceToSquared"
                                      },
                                      "computed": false
                                    },
                                    "arguments": [
                                      {
                                        "type": "Identifier",
                                        "start": 3684,
                                        "end": 3699,
                                        "loc": {
                                          "start": {
                                            "line": 103,
                                            "column": 47
                                          },
                                          "end": {
                                            "line": 103,
                                            "column": 62
                                          },
                                          "identifierName": "visiblePosition"
                                        },
                                        "name": "visiblePosition"
                                      }
                                    ]
                                  },
                                  "operator": "<",
                                  "right": {
                                    "type": "BinaryExpression",
                                    "start": 3703,
                                    "end": 3708,
                                    "loc": {
                                      "start": {
                                        "line": 103,
                                        "column": 66
                                      },
                                      "end": {
                                        "line": 103,
                                        "column": 71
                                      }
                                    },
                                    "left": {
                                      "type": "Identifier",
                                      "start": 3703,
                                      "end": 3704,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 66
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 67
                                        },
                                        "identifierName": "s"
                                      },
                                      "name": "s"
                                    },
                                    "operator": "*",
                                    "right": {
                                      "type": "Identifier",
                                      "start": 3707,
                                      "end": 3708,
                                      "loc": {
                                        "start": {
                                          "line": 103,
                                          "column": 70
                                        },
                                        "end": {
                                          "line": 103,
                                          "column": 71
                                        },
                                        "identifierName": "s"
                                      },
                                      "name": "s"
                                    }
                                  }
                                },
                                "consequent": {
                                  "type": "BlockStatement",
                                  "start": 3710,
                                  "end": 3819,
                                  "loc": {
                                    "start": {
                                      "line": 103,
                                      "column": 73
                                    },
                                    "end": {
                                      "line": 106,
                                      "column": 17
                                    }
                                  },
                                  "body": [
                                    {
                                      "type": "ExpressionStatement",
                                      "start": 3732,
                                      "end": 3761,
                                      "loc": {
                                        "start": {
                                          "line": 104,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 104,
                                          "column": 49
                                        }
                                      },
                                      "expression": {
                                        "type": "AssignmentExpression",
                                        "start": 3732,
                                        "end": 3760,
                                        "loc": {
                                          "start": {
                                            "line": 104,
                                            "column": 20
                                          },
                                          "end": {
                                            "line": 104,
                                            "column": 48
                                          }
                                        },
                                        "operator": "+=",
                                        "left": {
                                          "type": "MemberExpression",
                                          "start": 3732,
                                          "end": 3742,
                                          "loc": {
                                            "start": {
                                              "line": 104,
                                              "column": 20
                                            },
                                            "end": {
                                              "line": 104,
                                              "column": 30
                                            }
                                          },
                                          "object": {
                                            "type": "Identifier",
                                            "start": 3732,
                                            "end": 3740,
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 20
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 28
                                              },
                                              "identifierName": "position"
                                            },
                                            "name": "position"
                                          },
                                          "property": {
                                            "type": "Identifier",
                                            "start": 3741,
                                            "end": 3742,
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 29
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 30
                                              },
                                              "identifierName": "x"
                                            },
                                            "name": "x"
                                          },
                                          "computed": false
                                        },
                                        "right": {
                                          "type": "BinaryExpression",
                                          "start": 3746,
                                          "end": 3760,
                                          "loc": {
                                            "start": {
                                              "line": 104,
                                              "column": 34
                                            },
                                            "end": {
                                              "line": 104,
                                              "column": 48
                                            }
                                          },
                                          "left": {
                                            "type": "Identifier",
                                            "start": 3746,
                                            "end": 3747,
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 34
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 35
                                              },
                                              "identifierName": "s"
                                            },
                                            "name": "s"
                                          },
                                          "operator": "*",
                                          "right": {
                                            "type": "BinaryExpression",
                                            "start": 3751,
                                            "end": 3759,
                                            "loc": {
                                              "start": {
                                                "line": 104,
                                                "column": 39
                                              },
                                              "end": {
                                                "line": 104,
                                                "column": 47
                                              }
                                            },
                                            "left": {
                                              "type": "NumericLiteral",
                                              "start": 3751,
                                              "end": 3752,
                                              "loc": {
                                                "start": {
                                                  "line": 104,
                                                  "column": 39
                                                },
                                                "end": {
                                                  "line": 104,
                                                  "column": 40
                                                }
                                              },
                                              "extra": {
                                                "rawValue": 1,
                                                "raw": "1"
                                              },
                                              "value": 1
                                            },
                                            "operator": "+",
                                            "right": {
                                              "type": "NumericLiteral",
                                              "start": 3755,
                                              "end": 3759,
                                              "loc": {
                                                "start": {
                                                  "line": 104,
                                                  "column": 43
                                                },
                                                "end": {
                                                  "line": 104,
                                                  "column": 47
                                                }
                                              },
                                              "extra": {
                                                "rawValue": 0.000001,
                                                "raw": "1e-6"
                                              },
                                              "value": 0.000001
                                            },
                                            "extra": {
                                              "parenthesized": true,
                                              "parenStart": 3750
                                            }
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "type": "ContinueStatement",
                                      "start": 3782,
                                      "end": 3801,
                                      "loc": {
                                        "start": {
                                          "line": 105,
                                          "column": 20
                                        },
                                        "end": {
                                          "line": 105,
                                          "column": 39
                                        }
                                      },
                                      "label": {
                                        "type": "Identifier",
                                        "start": 3791,
                                        "end": 3800,
                                        "loc": {
                                          "start": {
                                            "line": 105,
                                            "column": 29
                                          },
                                          "end": {
                                            "line": 105,
                                            "column": 38
                                          },
                                          "identifierName": "triesLoop"
                                        },
                                        "name": "triesLoop"
                                      }
                                    }
                                  ],
                                  "directives": []
                                },
                                "alternate": null
                              }
                            },
                            {
                              "type": "BreakStatement",
                              "start": 3832,
                              "end": 3838,
                              "loc": {
                                "start": {
                                  "line": 107,
                                  "column": 12
                                },
                                "end": {
                                  "line": 107,
                                  "column": 18
                                }
                              },
                              "label": null
                            }
                          ],
                          "directives": []
                        }
                      },
                      "label": {
                        "type": "Identifier",
                        "start": 3520,
                        "end": 3529,
                        "loc": {
                          "start": {
                            "line": 101,
                            "column": 8
                          },
                          "end": {
                            "line": 101,
                            "column": 17
                          },
                          "identifierName": "triesLoop"
                        },
                        "name": "triesLoop"
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3857,
                      "end": 3893,
                      "loc": {
                        "start": {
                          "line": 109,
                          "column": 8
                        },
                        "end": {
                          "line": 109,
                          "column": 44
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3857,
                        "end": 3892,
                        "loc": {
                          "start": {
                            "line": 109,
                            "column": 8
                          },
                          "end": {
                            "line": 109,
                            "column": 43
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3857,
                          "end": 3882,
                          "loc": {
                            "start": {
                              "line": 109,
                              "column": 8
                            },
                            "end": {
                              "line": 109,
                              "column": 33
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3857,
                            "end": 3878,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 8
                              },
                              "end": {
                                "line": 109,
                                "column": 29
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3857,
                              "end": 3861,
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 8
                                },
                                "end": {
                                  "line": 109,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3862,
                              "end": 3878,
                              "loc": {
                                "start": {
                                  "line": 109,
                                  "column": 13
                                },
                                "end": {
                                  "line": 109,
                                  "column": 29
                                },
                                "identifierName": "visiblePositions"
                              },
                              "name": "visiblePositions"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3879,
                            "end": 3882,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 30
                              },
                              "end": {
                                "line": 109,
                                "column": 33
                              },
                              "identifierName": "add"
                            },
                            "name": "add"
                          },
                          "computed": false
                        },
                        "arguments": [
                          {
                            "type": "Identifier",
                            "start": 3883,
                            "end": 3891,
                            "loc": {
                              "start": {
                                "line": 109,
                                "column": 34
                              },
                              "end": {
                                "line": 109,
                                "column": 42
                              },
                              "identifierName": "position"
                            },
                            "name": "position"
                          }
                        ]
                      }
                    }
                  ],
                  "directives": []
                }
              },
              {
                "type": "ClassMethod",
                "start": 3905,
                "end": 4144,
                "loc": {
                  "start": {
                    "line": 112,
                    "column": 4
                  },
                  "end": {
                    "line": 118,
                    "column": 5
                  }
                },
                "computed": false,
                "key": {
                  "type": "Identifier",
                  "start": 3905,
                  "end": 3914,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 4
                    },
                    "end": {
                      "line": 112,
                      "column": 13
                    },
                    "identifierName": "updateAll"
                  },
                  "name": "updateAll"
                },
                "static": false,
                "kind": "method",
                "id": null,
                "generator": false,
                "expression": false,
                "async": false,
                "params": [
                  {
                    "type": "AssignmentPattern",
                    "start": 3915,
                    "end": 3931,
                    "loc": {
                      "start": {
                        "line": 112,
                        "column": 14
                      },
                      "end": {
                        "line": 112,
                        "column": 30
                      }
                    },
                    "left": {
                      "type": "Identifier",
                      "start": 3915,
                      "end": 3919,
                      "loc": {
                        "start": {
                          "line": 112,
                          "column": 14
                        },
                        "end": {
                          "line": 112,
                          "column": 18
                        },
                        "identifierName": "mode"
                      },
                      "name": "mode"
                    },
                    "right": {
                      "type": "MemberExpression",
                      "start": 3922,
                      "end": 3931,
                      "loc": {
                        "start": {
                          "line": 112,
                          "column": 21
                        },
                        "end": {
                          "line": 112,
                          "column": 30
                        }
                      },
                      "object": {
                        "type": "ThisExpression",
                        "start": 3922,
                        "end": 3926,
                        "loc": {
                          "start": {
                            "line": 112,
                            "column": 21
                          },
                          "end": {
                            "line": 112,
                            "column": 25
                          }
                        }
                      },
                      "property": {
                        "type": "Identifier",
                        "start": 3927,
                        "end": 3931,
                        "loc": {
                          "start": {
                            "line": 112,
                            "column": 26
                          },
                          "end": {
                            "line": 112,
                            "column": 30
                          },
                          "identifierName": "mode"
                        },
                        "name": "mode"
                      },
                      "computed": false
                    }
                  }
                ],
                "body": {
                  "type": "BlockStatement",
                  "start": 3933,
                  "end": 4144,
                  "loc": {
                    "start": {
                      "line": 112,
                      "column": 32
                    },
                    "end": {
                      "line": 118,
                      "column": 5
                    }
                  },
                  "body": [
                    {
                      "type": "ExpressionStatement",
                      "start": 3943,
                      "end": 3960,
                      "loc": {
                        "start": {
                          "line": 113,
                          "column": 8
                        },
                        "end": {
                          "line": 113,
                          "column": 25
                        }
                      },
                      "expression": {
                        "type": "AssignmentExpression",
                        "start": 3943,
                        "end": 3959,
                        "loc": {
                          "start": {
                            "line": 113,
                            "column": 8
                          },
                          "end": {
                            "line": 113,
                            "column": 24
                          }
                        },
                        "operator": "=",
                        "left": {
                          "type": "MemberExpression",
                          "start": 3943,
                          "end": 3952,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 8
                            },
                            "end": {
                              "line": 113,
                              "column": 17
                            }
                          },
                          "object": {
                            "type": "ThisExpression",
                            "start": 3943,
                            "end": 3947,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 8
                              },
                              "end": {
                                "line": 113,
                                "column": 12
                              }
                            }
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3948,
                            "end": 3952,
                            "loc": {
                              "start": {
                                "line": 113,
                                "column": 13
                              },
                              "end": {
                                "line": 113,
                                "column": 17
                              },
                              "identifierName": "mode"
                            },
                            "name": "mode"
                          },
                          "computed": false
                        },
                        "right": {
                          "type": "Identifier",
                          "start": 3955,
                          "end": 3959,
                          "loc": {
                            "start": {
                              "line": 113,
                              "column": 20
                            },
                            "end": {
                              "line": 113,
                              "column": 24
                            },
                            "identifierName": "mode"
                          },
                          "name": "mode"
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 3969,
                      "end": 3999,
                      "loc": {
                        "start": {
                          "line": 114,
                          "column": 8
                        },
                        "end": {
                          "line": 114,
                          "column": 38
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 3969,
                        "end": 3998,
                        "loc": {
                          "start": {
                            "line": 114,
                            "column": 8
                          },
                          "end": {
                            "line": 114,
                            "column": 37
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 3969,
                          "end": 3996,
                          "loc": {
                            "start": {
                              "line": 114,
                              "column": 8
                            },
                            "end": {
                              "line": 114,
                              "column": 35
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 3969,
                            "end": 3990,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 8
                              },
                              "end": {
                                "line": 114,
                                "column": 29
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 3969,
                              "end": 3973,
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 8
                                },
                                "end": {
                                  "line": 114,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 3974,
                              "end": 3990,
                              "loc": {
                                "start": {
                                  "line": 114,
                                  "column": 13
                                },
                                "end": {
                                  "line": 114,
                                  "column": 29
                                },
                                "identifierName": "visiblePositions"
                              },
                              "name": "visiblePositions"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 3991,
                            "end": 3996,
                            "loc": {
                              "start": {
                                "line": 114,
                                "column": 30
                              },
                              "end": {
                                "line": 114,
                                "column": 35
                              },
                              "identifierName": "clear"
                            },
                            "name": "clear"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    },
                    {
                      "type": "ForOfStatement",
                      "start": 4008,
                      "end": 4105,
                      "loc": {
                        "start": {
                          "line": 115,
                          "column": 8
                        },
                        "end": {
                          "line": 116,
                          "column": 64
                        }
                      },
                      "left": {
                        "type": "VariableDeclaration",
                        "start": 4013,
                        "end": 4019,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 13
                          },
                          "end": {
                            "line": 115,
                            "column": 19
                          }
                        },
                        "declarations": [
                          {
                            "type": "VariableDeclarator",
                            "start": 4017,
                            "end": 4019,
                            "loc": {
                              "start": {
                                "line": 115,
                                "column": 17
                              },
                              "end": {
                                "line": 115,
                                "column": 19
                              }
                            },
                            "id": {
                              "type": "Identifier",
                              "start": 4017,
                              "end": 4019,
                              "loc": {
                                "start": {
                                  "line": 115,
                                  "column": 17
                                },
                                "end": {
                                  "line": 115,
                                  "column": 19
                                },
                                "identifierName": "id"
                              },
                              "name": "id"
                            },
                            "init": null
                          }
                        ],
                        "kind": "let"
                      },
                      "right": {
                        "type": "MemberExpression",
                        "start": 4023,
                        "end": 4039,
                        "loc": {
                          "start": {
                            "line": 115,
                            "column": 23
                          },
                          "end": {
                            "line": 115,
                            "column": 39
                          }
                        },
                        "object": {
                          "type": "ThisExpression",
                          "start": 4023,
                          "end": 4027,
                          "loc": {
                            "start": {
                              "line": 115,
                              "column": 23
                            },
                            "end": {
                              "line": 115,
                              "column": 27
                            }
                          }
                        },
                        "property": {
                          "type": "Identifier",
                          "start": 4028,
                          "end": 4039,
                          "loc": {
                            "start": {
                              "line": 115,
                              "column": 28
                            },
                            "end": {
                              "line": 115,
                              "column": 39
                            },
                            "identifierName": "constraints"
                          },
                          "name": "constraints"
                        },
                        "computed": false
                      },
                      "body": {
                        "type": "ExpressionStatement",
                        "start": 4053,
                        "end": 4105,
                        "loc": {
                          "start": {
                            "line": 116,
                            "column": 12
                          },
                          "end": {
                            "line": 116,
                            "column": 64
                          }
                        },
                        "expression": {
                          "type": "CallExpression",
                          "start": 4053,
                          "end": 4104,
                          "loc": {
                            "start": {
                              "line": 116,
                              "column": 12
                            },
                            "end": {
                              "line": 116,
                              "column": 63
                            }
                          },
                          "callee": {
                            "type": "MemberExpression",
                            "start": 4053,
                            "end": 4074,
                            "loc": {
                              "start": {
                                "line": 116,
                                "column": 12
                              },
                              "end": {
                                "line": 116,
                                "column": 33
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 4053,
                              "end": 4057,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 12
                                },
                                "end": {
                                  "line": 116,
                                  "column": 16
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4058,
                              "end": 4074,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 17
                                },
                                "end": {
                                  "line": 116,
                                  "column": 33
                                },
                                "identifierName": "updateConstraint"
                              },
                              "name": "updateConstraint"
                            },
                            "computed": false
                          },
                          "arguments": [
                            {
                              "type": "NewExpression",
                              "start": 4075,
                              "end": 4103,
                              "loc": {
                                "start": {
                                  "line": 116,
                                  "column": 34
                                },
                                "end": {
                                  "line": 116,
                                  "column": 62
                                }
                              },
                              "callee": {
                                "type": "Identifier",
                                "start": 4079,
                                "end": 4084,
                                "loc": {
                                  "start": {
                                    "line": 116,
                                    "column": 38
                                  },
                                  "end": {
                                    "line": 116,
                                    "column": 43
                                  },
                                  "identifierName": "Ccref"
                                },
                                "name": "Ccref"
                              },
                              "arguments": [
                                {
                                  "type": "MemberExpression",
                                  "start": 4085,
                                  "end": 4098,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 44
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 57
                                    }
                                  },
                                  "object": {
                                    "type": "ThisExpression",
                                    "start": 4085,
                                    "end": 4089,
                                    "loc": {
                                      "start": {
                                        "line": 116,
                                        "column": 44
                                      },
                                      "end": {
                                        "line": 116,
                                        "column": 48
                                      }
                                    }
                                  },
                                  "property": {
                                    "type": "Identifier",
                                    "start": 4090,
                                    "end": 4098,
                                    "loc": {
                                      "start": {
                                        "line": 116,
                                        "column": 49
                                      },
                                      "end": {
                                        "line": 116,
                                        "column": 57
                                      },
                                      "identifierName": "sketcher"
                                    },
                                    "name": "sketcher"
                                  },
                                  "computed": false
                                },
                                {
                                  "type": "Identifier",
                                  "start": 4100,
                                  "end": 4102,
                                  "loc": {
                                    "start": {
                                      "line": 116,
                                      "column": 59
                                    },
                                    "end": {
                                      "line": 116,
                                      "column": 61
                                    },
                                    "identifierName": "id"
                                  },
                                  "name": "id"
                                }
                              ]
                            }
                          ]
                        }
                      }
                    },
                    {
                      "type": "ExpressionStatement",
                      "start": 4114,
                      "end": 4138,
                      "loc": {
                        "start": {
                          "line": 117,
                          "column": 8
                        },
                        "end": {
                          "line": 117,
                          "column": 32
                        }
                      },
                      "expression": {
                        "type": "CallExpression",
                        "start": 4114,
                        "end": 4137,
                        "loc": {
                          "start": {
                            "line": 117,
                            "column": 8
                          },
                          "end": {
                            "line": 117,
                            "column": 31
                          }
                        },
                        "callee": {
                          "type": "MemberExpression",
                          "start": 4114,
                          "end": 4135,
                          "loc": {
                            "start": {
                              "line": 117,
                              "column": 8
                            },
                            "end": {
                              "line": 117,
                              "column": 29
                            }
                          },
                          "object": {
                            "type": "MemberExpression",
                            "start": 4114,
                            "end": 4127,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 8
                              },
                              "end": {
                                "line": 117,
                                "column": 21
                              }
                            },
                            "object": {
                              "type": "ThisExpression",
                              "start": 4114,
                              "end": 4118,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 8
                                },
                                "end": {
                                  "line": 117,
                                  "column": 12
                                }
                              }
                            },
                            "property": {
                              "type": "Identifier",
                              "start": 4119,
                              "end": 4127,
                              "loc": {
                                "start": {
                                  "line": 117,
                                  "column": 13
                                },
                                "end": {
                                  "line": 117,
                                  "column": 21
                                },
                                "identifierName": "sketcher"
                              },
                              "name": "sketcher"
                            },
                            "computed": false
                          },
                          "property": {
                            "type": "Identifier",
                            "start": 4128,
                            "end": 4135,
                            "loc": {
                              "start": {
                                "line": 117,
                                "column": 22
                              },
                              "end": {
                                "line": 117,
                                "column": 29
                              },
                              "identifierName": "refresh"
                            },
                            "name": "refresh"
                          },
                          "computed": false
                        },
                        "arguments": []
                      }
                    }
                  ],
                  "directives": []
                }
              }
            ]
          },
          "leadingComments": [],
          "trailingComments": []
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
      "start": 434,
      "end": 507,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 81
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Reverse mapping from entities to constraints",
      "start": 554,
      "end": 601,
      "loc": {
        "start": {
          "line": 19,
          "column": 8
        },
        "end": {
          "line": 19,
          "column": 55
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Used to track constraint positions in all modes",
      "start": 646,
      "end": 696,
      "loc": {
        "start": {
          "line": 21,
          "column": 8
        },
        "end": {
          "line": 21,
          "column": 58
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " if entity is updated just before constraint is deleted (e.g. fillet point)",
      "start": 1893,
      "end": 1970,
      "loc": {
        "start": {
          "line": 51,
          "column": 45
        },
        "end": {
          "line": 51,
          "column": 122
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " do nothing",
      "start": 2450,
      "end": 2463,
      "loc": {
        "start": {
          "line": 67,
          "column": 8
        },
        "end": {
          "line": 67,
          "column": 21
        }
      }
    }
  ],
  "tokens": [
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 0,
      "end": 6,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 7,
      "end": 8,
      "loc": {
        "start": {
          "line": 1,
          "column": 7
        },
        "end": {
          "line": 1,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 9,
      "end": 11,
      "loc": {
        "start": {
          "line": 1,
          "column": 9
        },
        "end": {
          "line": 1,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "THREE",
      "start": 12,
      "end": 17,
      "loc": {
        "start": {
          "line": 1,
          "column": 12
        },
        "end": {
          "line": 1,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 18,
      "end": 22,
      "loc": {
        "start": {
          "line": 1,
          "column": 18
        },
        "end": {
          "line": 1,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "three",
      "start": 23,
      "end": 30,
      "loc": {
        "start": {
          "line": 1,
          "column": 23
        },
        "end": {
          "line": 1,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 30,
      "end": 31,
      "loc": {
        "start": {
          "line": 1,
          "column": 30
        },
        "end": {
          "line": 1,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 32,
      "end": 38,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Object3",
      "start": 39,
      "end": 46,
      "loc": {
        "start": {
          "line": 2,
          "column": 7
        },
        "end": {
          "line": 2,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 47,
      "end": 51,
      "loc": {
        "start": {
          "line": 2,
          "column": 15
        },
        "end": {
          "line": 2,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../../../three/object3",
      "start": 52,
      "end": 76,
      "loc": {
        "start": {
          "line": 2,
          "column": 20
        },
        "end": {
          "line": 2,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 76,
      "end": 77,
      "loc": {
        "start": {
          "line": 2,
          "column": 44
        },
        "end": {
          "line": 2,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 78,
      "end": 84,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 85,
      "end": 90,
      "loc": {
        "start": {
          "line": 3,
          "column": 7
        },
        "end": {
          "line": 3,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 91,
      "end": 95,
      "loc": {
        "start": {
          "line": 3,
          "column": 13
        },
        "end": {
          "line": 3,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../ccref",
      "start": 96,
      "end": 106,
      "loc": {
        "start": {
          "line": 3,
          "column": 18
        },
        "end": {
          "line": 3,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 106,
      "end": 107,
      "loc": {
        "start": {
          "line": 3,
          "column": 28
        },
        "end": {
          "line": 3,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 108,
      "end": 114,
      "loc": {
        "start": {
          "line": 4,
          "column": 0
        },
        "end": {
          "line": 4,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 115,
      "end": 116,
      "loc": {
        "start": {
          "line": 4,
          "column": 7
        },
        "end": {
          "line": 4,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getArcAngles",
      "start": 117,
      "end": 129,
      "loc": {
        "start": {
          "line": 4,
          "column": 9
        },
        "end": {
          "line": 4,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 130,
      "end": 131,
      "loc": {
        "start": {
          "line": 4,
          "column": 22
        },
        "end": {
          "line": 4,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 132,
      "end": 136,
      "loc": {
        "start": {
          "line": 4,
          "column": 24
        },
        "end": {
          "line": 4,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../geomutils",
      "start": 137,
      "end": 151,
      "loc": {
        "start": {
          "line": 4,
          "column": 29
        },
        "end": {
          "line": 4,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 151,
      "end": 152,
      "loc": {
        "start": {
          "line": 4,
          "column": 43
        },
        "end": {
          "line": 4,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "import",
        "keyword": "import",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "import",
      "start": 153,
      "end": 159,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintGraphics",
      "start": 160,
      "end": 178,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 179,
      "end": 183,
      "loc": {
        "start": {
          "line": 5,
          "column": 26
        },
        "end": {
          "line": 5,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "../graphics/constraint",
      "start": 184,
      "end": 208,
      "loc": {
        "start": {
          "line": 5,
          "column": 31
        },
        "end": {
          "line": 5,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 208,
      "end": 209,
      "loc": {
        "start": {
          "line": 5,
          "column": 55
        },
        "end": {
          "line": 5,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 211,
      "end": 216,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 217,
      "end": 221,
      "loc": {
        "start": {
          "line": 7,
          "column": 6
        },
        "end": {
          "line": 7,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 222,
      "end": 223,
      "loc": {
        "start": {
          "line": 7,
          "column": 11
        },
        "end": {
          "line": 7,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Object",
      "start": 224,
      "end": 230,
      "loc": {
        "start": {
          "line": 7,
          "column": 13
        },
        "end": {
          "line": 7,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 230,
      "end": 231,
      "loc": {
        "start": {
          "line": 7,
          "column": 19
        },
        "end": {
          "line": 7,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "freeze",
      "start": 231,
      "end": 237,
      "loc": {
        "start": {
          "line": 7,
          "column": 20
        },
        "end": {
          "line": 7,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 237,
      "end": 238,
      "loc": {
        "start": {
          "line": 7,
          "column": 26
        },
        "end": {
          "line": 7,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 238,
      "end": 239,
      "loc": {
        "start": {
          "line": 7,
          "column": 27
        },
        "end": {
          "line": 7,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Never",
      "start": 244,
      "end": 249,
      "loc": {
        "start": {
          "line": 8,
          "column": 4
        },
        "end": {
          "line": 8,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 249,
      "end": 250,
      "loc": {
        "start": {
          "line": 8,
          "column": 9
        },
        "end": {
          "line": 8,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 251,
      "end": 252,
      "loc": {
        "start": {
          "line": 8,
          "column": 11
        },
        "end": {
          "line": 8,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 252,
      "end": 253,
      "loc": {
        "start": {
          "line": 8,
          "column": 12
        },
        "end": {
          "line": 8,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 258,
      "end": 263,
      "loc": {
        "start": {
          "line": 9,
          "column": 4
        },
        "end": {
          "line": 9,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 263,
      "end": 264,
      "loc": {
        "start": {
          "line": 9,
          "column": 9
        },
        "end": {
          "line": 9,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 265,
      "end": 266,
      "loc": {
        "start": {
          "line": 9,
          "column": 11
        },
        "end": {
          "line": 9,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 266,
      "end": 267,
      "loc": {
        "start": {
          "line": 9,
          "column": 12
        },
        "end": {
          "line": 9,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Always",
      "start": 272,
      "end": 278,
      "loc": {
        "start": {
          "line": 10,
          "column": 4
        },
        "end": {
          "line": 10,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 278,
      "end": 279,
      "loc": {
        "start": {
          "line": 10,
          "column": 10
        },
        "end": {
          "line": 10,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 2,
      "start": 280,
      "end": 281,
      "loc": {
        "start": {
          "line": 10,
          "column": 12
        },
        "end": {
          "line": 10,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 281,
      "end": 282,
      "loc": {
        "start": {
          "line": 10,
          "column": 13
        },
        "end": {
          "line": 10,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 283,
      "end": 284,
      "loc": {
        "start": {
          "line": 11,
          "column": 0
        },
        "end": {
          "line": 11,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 284,
      "end": 285,
      "loc": {
        "start": {
          "line": 11,
          "column": 1
        },
        "end": {
          "line": 11,
          "column": 2
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 285,
      "end": 286,
      "loc": {
        "start": {
          "line": 11,
          "column": 2
        },
        "end": {
          "line": 11,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 288,
      "end": 294,
      "loc": {
        "start": {
          "line": 13,
          "column": 0
        },
        "end": {
          "line": 13,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 295,
      "end": 302,
      "loc": {
        "start": {
          "line": 13,
          "column": 7
        },
        "end": {
          "line": 13,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 303,
      "end": 308,
      "loc": {
        "start": {
          "line": 13,
          "column": 15
        },
        "end": {
          "line": 13,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Visualizer",
      "start": 309,
      "end": 319,
      "loc": {
        "start": {
          "line": 13,
          "column": 21
        },
        "end": {
          "line": 13,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 320,
      "end": 321,
      "loc": {
        "start": {
          "line": 13,
          "column": 32
        },
        "end": {
          "line": 13,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constructor",
      "start": 326,
      "end": 337,
      "loc": {
        "start": {
          "line": 14,
          "column": 4
        },
        "end": {
          "line": 14,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 337,
      "end": 338,
      "loc": {
        "start": {
          "line": 14,
          "column": 15
        },
        "end": {
          "line": 14,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 338,
      "end": 346,
      "loc": {
        "start": {
          "line": 14,
          "column": 16
        },
        "end": {
          "line": 14,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 346,
      "end": 347,
      "loc": {
        "start": {
          "line": 14,
          "column": 24
        },
        "end": {
          "line": 14,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "textures",
      "start": 348,
      "end": 356,
      "loc": {
        "start": {
          "line": 14,
          "column": 26
        },
        "end": {
          "line": 14,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 356,
      "end": 357,
      "loc": {
        "start": {
          "line": 14,
          "column": 34
        },
        "end": {
          "line": 14,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 358,
      "end": 359,
      "loc": {
        "start": {
          "line": 14,
          "column": 36
        },
        "end": {
          "line": 14,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 368,
      "end": 372,
      "loc": {
        "start": {
          "line": 15,
          "column": 8
        },
        "end": {
          "line": 15,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 372,
      "end": 373,
      "loc": {
        "start": {
          "line": 15,
          "column": 12
        },
        "end": {
          "line": 15,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 373,
      "end": 377,
      "loc": {
        "start": {
          "line": 15,
          "column": 13
        },
        "end": {
          "line": 15,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 378,
      "end": 379,
      "loc": {
        "start": {
          "line": 15,
          "column": 18
        },
        "end": {
          "line": 15,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 380,
      "end": 384,
      "loc": {
        "start": {
          "line": 15,
          "column": 20
        },
        "end": {
          "line": 15,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 384,
      "end": 385,
      "loc": {
        "start": {
          "line": 15,
          "column": 24
        },
        "end": {
          "line": 15,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 385,
      "end": 390,
      "loc": {
        "start": {
          "line": 15,
          "column": 25
        },
        "end": {
          "line": 15,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 390,
      "end": 391,
      "loc": {
        "start": {
          "line": 15,
          "column": 30
        },
        "end": {
          "line": 15,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 400,
      "end": 404,
      "loc": {
        "start": {
          "line": 16,
          "column": 8
        },
        "end": {
          "line": 16,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 404,
      "end": 405,
      "loc": {
        "start": {
          "line": 16,
          "column": 12
        },
        "end": {
          "line": 16,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 405,
      "end": 413,
      "loc": {
        "start": {
          "line": 16,
          "column": 13
        },
        "end": {
          "line": 16,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 414,
      "end": 415,
      "loc": {
        "start": {
          "line": 16,
          "column": 22
        },
        "end": {
          "line": 16,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 416,
      "end": 424,
      "loc": {
        "start": {
          "line": 16,
          "column": 24
        },
        "end": {
          "line": 16,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 424,
      "end": 425,
      "loc": {
        "start": {
          "line": 16,
          "column": 32
        },
        "end": {
          "line": 16,
          "column": 33
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Set of constraint ids to avoid iterating and filtering sketch.children",
      "start": 434,
      "end": 507,
      "loc": {
        "start": {
          "line": 17,
          "column": 8
        },
        "end": {
          "line": 17,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 516,
      "end": 520,
      "loc": {
        "start": {
          "line": 18,
          "column": 8
        },
        "end": {
          "line": 18,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 520,
      "end": 521,
      "loc": {
        "start": {
          "line": 18,
          "column": 12
        },
        "end": {
          "line": 18,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 521,
      "end": 532,
      "loc": {
        "start": {
          "line": 18,
          "column": 13
        },
        "end": {
          "line": 18,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 533,
      "end": 534,
      "loc": {
        "start": {
          "line": 18,
          "column": 25
        },
        "end": {
          "line": 18,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 535,
      "end": 538,
      "loc": {
        "start": {
          "line": 18,
          "column": 27
        },
        "end": {
          "line": 18,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Set",
      "start": 539,
      "end": 542,
      "loc": {
        "start": {
          "line": 18,
          "column": 31
        },
        "end": {
          "line": 18,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 542,
      "end": 543,
      "loc": {
        "start": {
          "line": 18,
          "column": 34
        },
        "end": {
          "line": 18,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 543,
      "end": 544,
      "loc": {
        "start": {
          "line": 18,
          "column": 35
        },
        "end": {
          "line": 18,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 544,
      "end": 545,
      "loc": {
        "start": {
          "line": 18,
          "column": 36
        },
        "end": {
          "line": 18,
          "column": 37
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Reverse mapping from entities to constraints",
      "start": 554,
      "end": 601,
      "loc": {
        "start": {
          "line": 19,
          "column": 8
        },
        "end": {
          "line": 19,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 610,
      "end": 614,
      "loc": {
        "start": {
          "line": 20,
          "column": 8
        },
        "end": {
          "line": 20,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 614,
      "end": 615,
      "loc": {
        "start": {
          "line": 20,
          "column": 12
        },
        "end": {
          "line": 20,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 615,
      "end": 624,
      "loc": {
        "start": {
          "line": 20,
          "column": 13
        },
        "end": {
          "line": 20,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 625,
      "end": 626,
      "loc": {
        "start": {
          "line": 20,
          "column": 23
        },
        "end": {
          "line": 20,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 627,
      "end": 630,
      "loc": {
        "start": {
          "line": 20,
          "column": 25
        },
        "end": {
          "line": 20,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Map",
      "start": 631,
      "end": 634,
      "loc": {
        "start": {
          "line": 20,
          "column": 29
        },
        "end": {
          "line": 20,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 634,
      "end": 635,
      "loc": {
        "start": {
          "line": 20,
          "column": 32
        },
        "end": {
          "line": 20,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 635,
      "end": 636,
      "loc": {
        "start": {
          "line": 20,
          "column": 33
        },
        "end": {
          "line": 20,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 636,
      "end": 637,
      "loc": {
        "start": {
          "line": 20,
          "column": 34
        },
        "end": {
          "line": 20,
          "column": 35
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " Used to track constraint positions in all modes",
      "start": 646,
      "end": 696,
      "loc": {
        "start": {
          "line": 21,
          "column": 8
        },
        "end": {
          "line": 21,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 705,
      "end": 709,
      "loc": {
        "start": {
          "line": 22,
          "column": 8
        },
        "end": {
          "line": 22,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 709,
      "end": 710,
      "loc": {
        "start": {
          "line": 22,
          "column": 12
        },
        "end": {
          "line": 22,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePositions",
      "start": 710,
      "end": 726,
      "loc": {
        "start": {
          "line": 22,
          "column": 13
        },
        "end": {
          "line": 22,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 727,
      "end": 728,
      "loc": {
        "start": {
          "line": 22,
          "column": 30
        },
        "end": {
          "line": 22,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 729,
      "end": 732,
      "loc": {
        "start": {
          "line": 22,
          "column": 32
        },
        "end": {
          "line": 22,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Set",
      "start": 733,
      "end": 736,
      "loc": {
        "start": {
          "line": 22,
          "column": 36
        },
        "end": {
          "line": 22,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 736,
      "end": 737,
      "loc": {
        "start": {
          "line": 22,
          "column": 39
        },
        "end": {
          "line": 22,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 737,
      "end": 738,
      "loc": {
        "start": {
          "line": 22,
          "column": 40
        },
        "end": {
          "line": 22,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 738,
      "end": 739,
      "loc": {
        "start": {
          "line": 22,
          "column": 41
        },
        "end": {
          "line": 22,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 744,
      "end": 745,
      "loc": {
        "start": {
          "line": 23,
          "column": 4
        },
        "end": {
          "line": 23,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "addConstraint",
      "start": 751,
      "end": 764,
      "loc": {
        "start": {
          "line": 25,
          "column": 4
        },
        "end": {
          "line": 25,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 764,
      "end": 765,
      "loc": {
        "start": {
          "line": 25,
          "column": 17
        },
        "end": {
          "line": 25,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 765,
      "end": 775,
      "loc": {
        "start": {
          "line": 25,
          "column": 18
        },
        "end": {
          "line": 25,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 775,
      "end": 776,
      "loc": {
        "start": {
          "line": 25,
          "column": 28
        },
        "end": {
          "line": 25,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 777,
      "end": 778,
      "loc": {
        "start": {
          "line": 25,
          "column": 30
        },
        "end": {
          "line": 25,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 787,
      "end": 789,
      "loc": {
        "start": {
          "line": 26,
          "column": 8
        },
        "end": {
          "line": 26,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 790,
      "end": 791,
      "loc": {
        "start": {
          "line": 26,
          "column": 11
        },
        "end": {
          "line": 26,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 791,
      "end": 792,
      "loc": {
        "start": {
          "line": 26,
          "column": 12
        },
        "end": {
          "line": 26,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 792,
      "end": 793,
      "loc": {
        "start": {
          "line": 26,
          "column": 13
        },
        "end": {
          "line": 26,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 793,
      "end": 803,
      "loc": {
        "start": {
          "line": 26,
          "column": 14
        },
        "end": {
          "line": 26,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 803,
      "end": 804,
      "loc": {
        "start": {
          "line": 26,
          "column": 24
        },
        "end": {
          "line": 26,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 804,
      "end": 812,
      "loc": {
        "start": {
          "line": 26,
          "column": 25
        },
        "end": {
          "line": 26,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 813,
      "end": 823,
      "loc": {
        "start": {
          "line": 26,
          "column": 34
        },
        "end": {
          "line": 26,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintGraphics",
      "start": 824,
      "end": 842,
      "loc": {
        "start": {
          "line": 26,
          "column": 45
        },
        "end": {
          "line": 26,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 842,
      "end": 843,
      "loc": {
        "start": {
          "line": 26,
          "column": 63
        },
        "end": {
          "line": 26,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 843,
      "end": 844,
      "loc": {
        "start": {
          "line": 26,
          "column": 64
        },
        "end": {
          "line": 26,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 845,
      "end": 851,
      "loc": {
        "start": {
          "line": 26,
          "column": 66
        },
        "end": {
          "line": 26,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 851,
      "end": 852,
      "loc": {
        "start": {
          "line": 26,
          "column": 72
        },
        "end": {
          "line": 26,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 861,
      "end": 865,
      "loc": {
        "start": {
          "line": 27,
          "column": 8
        },
        "end": {
          "line": 27,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 865,
      "end": 866,
      "loc": {
        "start": {
          "line": 27,
          "column": 12
        },
        "end": {
          "line": 27,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 866,
      "end": 877,
      "loc": {
        "start": {
          "line": 27,
          "column": 13
        },
        "end": {
          "line": 27,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 877,
      "end": 878,
      "loc": {
        "start": {
          "line": 27,
          "column": 24
        },
        "end": {
          "line": 27,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 878,
      "end": 881,
      "loc": {
        "start": {
          "line": 27,
          "column": 25
        },
        "end": {
          "line": 27,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 881,
      "end": 882,
      "loc": {
        "start": {
          "line": 27,
          "column": 28
        },
        "end": {
          "line": 27,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 882,
      "end": 892,
      "loc": {
        "start": {
          "line": 27,
          "column": 29
        },
        "end": {
          "line": 27,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 892,
      "end": 893,
      "loc": {
        "start": {
          "line": 27,
          "column": 39
        },
        "end": {
          "line": 27,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 893,
      "end": 895,
      "loc": {
        "start": {
          "line": 27,
          "column": 40
        },
        "end": {
          "line": 27,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 895,
      "end": 896,
      "loc": {
        "start": {
          "line": 27,
          "column": 42
        },
        "end": {
          "line": 27,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 896,
      "end": 897,
      "loc": {
        "start": {
          "line": 27,
          "column": 43
        },
        "end": {
          "line": 27,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 906,
      "end": 909,
      "loc": {
        "start": {
          "line": 28,
          "column": 8
        },
        "end": {
          "line": 28,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 910,
      "end": 911,
      "loc": {
        "start": {
          "line": 28,
          "column": 12
        },
        "end": {
          "line": 28,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 911,
      "end": 914,
      "loc": {
        "start": {
          "line": 28,
          "column": 13
        },
        "end": {
          "line": 28,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 915,
      "end": 921,
      "loc": {
        "start": {
          "line": 28,
          "column": 17
        },
        "end": {
          "line": 28,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 922,
      "end": 924,
      "loc": {
        "start": {
          "line": 28,
          "column": 24
        },
        "end": {
          "line": 28,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 925,
      "end": 935,
      "loc": {
        "start": {
          "line": 28,
          "column": 27
        },
        "end": {
          "line": 28,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 935,
      "end": 936,
      "loc": {
        "start": {
          "line": 28,
          "column": 37
        },
        "end": {
          "line": 28,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entities",
      "start": 936,
      "end": 944,
      "loc": {
        "start": {
          "line": 28,
          "column": 38
        },
        "end": {
          "line": 28,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 944,
      "end": 945,
      "loc": {
        "start": {
          "line": 28,
          "column": 46
        },
        "end": {
          "line": 28,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 946,
      "end": 947,
      "loc": {
        "start": {
          "line": 28,
          "column": 48
        },
        "end": {
          "line": 28,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 960,
      "end": 962,
      "loc": {
        "start": {
          "line": 29,
          "column": 12
        },
        "end": {
          "line": 29,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 963,
      "end": 964,
      "loc": {
        "start": {
          "line": 29,
          "column": 15
        },
        "end": {
          "line": 29,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 964,
      "end": 965,
      "loc": {
        "start": {
          "line": 29,
          "column": 16
        },
        "end": {
          "line": 29,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 965,
      "end": 969,
      "loc": {
        "start": {
          "line": 29,
          "column": 17
        },
        "end": {
          "line": 29,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 969,
      "end": 970,
      "loc": {
        "start": {
          "line": 29,
          "column": 21
        },
        "end": {
          "line": 29,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 970,
      "end": 979,
      "loc": {
        "start": {
          "line": 29,
          "column": 22
        },
        "end": {
          "line": 29,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 979,
      "end": 980,
      "loc": {
        "start": {
          "line": 29,
          "column": 31
        },
        "end": {
          "line": 29,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "has",
      "start": 980,
      "end": 983,
      "loc": {
        "start": {
          "line": 29,
          "column": 32
        },
        "end": {
          "line": 29,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 983,
      "end": 984,
      "loc": {
        "start": {
          "line": 29,
          "column": 35
        },
        "end": {
          "line": 29,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 984,
      "end": 990,
      "loc": {
        "start": {
          "line": 29,
          "column": 36
        },
        "end": {
          "line": 29,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 990,
      "end": 991,
      "loc": {
        "start": {
          "line": 29,
          "column": 42
        },
        "end": {
          "line": 29,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 991,
      "end": 993,
      "loc": {
        "start": {
          "line": 29,
          "column": 43
        },
        "end": {
          "line": 29,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 993,
      "end": 994,
      "loc": {
        "start": {
          "line": 29,
          "column": 45
        },
        "end": {
          "line": 29,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 994,
      "end": 995,
      "loc": {
        "start": {
          "line": 29,
          "column": 46
        },
        "end": {
          "line": 29,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 996,
      "end": 1000,
      "loc": {
        "start": {
          "line": 29,
          "column": 48
        },
        "end": {
          "line": 29,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1000,
      "end": 1001,
      "loc": {
        "start": {
          "line": 29,
          "column": 52
        },
        "end": {
          "line": 29,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1001,
      "end": 1010,
      "loc": {
        "start": {
          "line": 29,
          "column": 53
        },
        "end": {
          "line": 29,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1010,
      "end": 1011,
      "loc": {
        "start": {
          "line": 29,
          "column": 62
        },
        "end": {
          "line": 29,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 1011,
      "end": 1014,
      "loc": {
        "start": {
          "line": 29,
          "column": 63
        },
        "end": {
          "line": 29,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1014,
      "end": 1015,
      "loc": {
        "start": {
          "line": 29,
          "column": 66
        },
        "end": {
          "line": 29,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1015,
      "end": 1021,
      "loc": {
        "start": {
          "line": 29,
          "column": 67
        },
        "end": {
          "line": 29,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1021,
      "end": 1022,
      "loc": {
        "start": {
          "line": 29,
          "column": 73
        },
        "end": {
          "line": 29,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1022,
      "end": 1024,
      "loc": {
        "start": {
          "line": 29,
          "column": 74
        },
        "end": {
          "line": 29,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1024,
      "end": 1025,
      "loc": {
        "start": {
          "line": 29,
          "column": 76
        },
        "end": {
          "line": 29,
          "column": 77
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1026,
      "end": 1027,
      "loc": {
        "start": {
          "line": 29,
          "column": 78
        },
        "end": {
          "line": 29,
          "column": 79
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1027,
      "end": 1028,
      "loc": {
        "start": {
          "line": 29,
          "column": 79
        },
        "end": {
          "line": 29,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1028,
      "end": 1029,
      "loc": {
        "start": {
          "line": 29,
          "column": 80
        },
        "end": {
          "line": 29,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1029,
      "end": 1030,
      "loc": {
        "start": {
          "line": 29,
          "column": 81
        },
        "end": {
          "line": 29,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1043,
      "end": 1047,
      "loc": {
        "start": {
          "line": 30,
          "column": 12
        },
        "end": {
          "line": 30,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1047,
      "end": 1048,
      "loc": {
        "start": {
          "line": 30,
          "column": 16
        },
        "end": {
          "line": 30,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1048,
      "end": 1057,
      "loc": {
        "start": {
          "line": 30,
          "column": 17
        },
        "end": {
          "line": 30,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1057,
      "end": 1058,
      "loc": {
        "start": {
          "line": 30,
          "column": 26
        },
        "end": {
          "line": 30,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 1058,
      "end": 1061,
      "loc": {
        "start": {
          "line": 30,
          "column": 27
        },
        "end": {
          "line": 30,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1061,
      "end": 1062,
      "loc": {
        "start": {
          "line": 30,
          "column": 30
        },
        "end": {
          "line": 30,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1062,
      "end": 1068,
      "loc": {
        "start": {
          "line": 30,
          "column": 31
        },
        "end": {
          "line": 30,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1068,
      "end": 1069,
      "loc": {
        "start": {
          "line": 30,
          "column": 37
        },
        "end": {
          "line": 30,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1069,
      "end": 1071,
      "loc": {
        "start": {
          "line": 30,
          "column": 38
        },
        "end": {
          "line": 30,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1071,
      "end": 1072,
      "loc": {
        "start": {
          "line": 30,
          "column": 40
        },
        "end": {
          "line": 30,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1072,
      "end": 1073,
      "loc": {
        "start": {
          "line": 30,
          "column": 41
        },
        "end": {
          "line": 30,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "push",
      "start": 1073,
      "end": 1077,
      "loc": {
        "start": {
          "line": 30,
          "column": 42
        },
        "end": {
          "line": 30,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1077,
      "end": 1078,
      "loc": {
        "start": {
          "line": 30,
          "column": 46
        },
        "end": {
          "line": 30,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1078,
      "end": 1088,
      "loc": {
        "start": {
          "line": 30,
          "column": 47
        },
        "end": {
          "line": 30,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1088,
      "end": 1089,
      "loc": {
        "start": {
          "line": 30,
          "column": 57
        },
        "end": {
          "line": 30,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1089,
      "end": 1091,
      "loc": {
        "start": {
          "line": 30,
          "column": 58
        },
        "end": {
          "line": 30,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1091,
      "end": 1092,
      "loc": {
        "start": {
          "line": 30,
          "column": 60
        },
        "end": {
          "line": 30,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1092,
      "end": 1093,
      "loc": {
        "start": {
          "line": 30,
          "column": 61
        },
        "end": {
          "line": 30,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1102,
      "end": 1103,
      "loc": {
        "start": {
          "line": 31,
          "column": 8
        },
        "end": {
          "line": 31,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1108,
      "end": 1109,
      "loc": {
        "start": {
          "line": 32,
          "column": 4
        },
        "end": {
          "line": 32,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "removeConstraint",
      "start": 1115,
      "end": 1131,
      "loc": {
        "start": {
          "line": 34,
          "column": 4
        },
        "end": {
          "line": 34,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1131,
      "end": 1132,
      "loc": {
        "start": {
          "line": 34,
          "column": 20
        },
        "end": {
          "line": 34,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1132,
      "end": 1142,
      "loc": {
        "start": {
          "line": 34,
          "column": 21
        },
        "end": {
          "line": 34,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1142,
      "end": 1143,
      "loc": {
        "start": {
          "line": 34,
          "column": 31
        },
        "end": {
          "line": 34,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 1144,
      "end": 1149,
      "loc": {
        "start": {
          "line": 34,
          "column": 33
        },
        "end": {
          "line": 34,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1150,
      "end": 1151,
      "loc": {
        "start": {
          "line": 34,
          "column": 39
        },
        "end": {
          "line": 34,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1152,
      "end": 1162,
      "loc": {
        "start": {
          "line": 34,
          "column": 41
        },
        "end": {
          "line": 34,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1162,
      "end": 1163,
      "loc": {
        "start": {
          "line": 34,
          "column": 51
        },
        "end": {
          "line": 34,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 1163,
      "end": 1168,
      "loc": {
        "start": {
          "line": 34,
          "column": 52
        },
        "end": {
          "line": 34,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1168,
      "end": 1169,
      "loc": {
        "start": {
          "line": 34,
          "column": 57
        },
        "end": {
          "line": 34,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1170,
      "end": 1171,
      "loc": {
        "start": {
          "line": 34,
          "column": 59
        },
        "end": {
          "line": 34,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1180,
      "end": 1182,
      "loc": {
        "start": {
          "line": 35,
          "column": 8
        },
        "end": {
          "line": 35,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1183,
      "end": 1184,
      "loc": {
        "start": {
          "line": 35,
          "column": 11
        },
        "end": {
          "line": 35,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 1184,
      "end": 1185,
      "loc": {
        "start": {
          "line": 35,
          "column": 12
        },
        "end": {
          "line": 35,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1185,
      "end": 1186,
      "loc": {
        "start": {
          "line": 35,
          "column": 13
        },
        "end": {
          "line": 35,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1186,
      "end": 1196,
      "loc": {
        "start": {
          "line": 35,
          "column": 14
        },
        "end": {
          "line": 35,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1196,
      "end": 1197,
      "loc": {
        "start": {
          "line": 35,
          "column": 24
        },
        "end": {
          "line": 35,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 1197,
      "end": 1205,
      "loc": {
        "start": {
          "line": 35,
          "column": 25
        },
        "end": {
          "line": 35,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "instanceof",
        "keyword": "instanceof",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "instanceof",
      "start": 1206,
      "end": 1216,
      "loc": {
        "start": {
          "line": 35,
          "column": 34
        },
        "end": {
          "line": 35,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "ConstraintGraphics",
      "start": 1217,
      "end": 1235,
      "loc": {
        "start": {
          "line": 35,
          "column": 45
        },
        "end": {
          "line": 35,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1235,
      "end": 1236,
      "loc": {
        "start": {
          "line": 35,
          "column": 63
        },
        "end": {
          "line": 35,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1236,
      "end": 1237,
      "loc": {
        "start": {
          "line": 35,
          "column": 64
        },
        "end": {
          "line": 35,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 1238,
      "end": 1244,
      "loc": {
        "start": {
          "line": 35,
          "column": 66
        },
        "end": {
          "line": 35,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1244,
      "end": 1245,
      "loc": {
        "start": {
          "line": 35,
          "column": 72
        },
        "end": {
          "line": 35,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 1254,
      "end": 1257,
      "loc": {
        "start": {
          "line": 36,
          "column": 8
        },
        "end": {
          "line": 36,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1258,
      "end": 1259,
      "loc": {
        "start": {
          "line": 36,
          "column": 12
        },
        "end": {
          "line": 36,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1259,
      "end": 1262,
      "loc": {
        "start": {
          "line": 36,
          "column": 13
        },
        "end": {
          "line": 36,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1263,
      "end": 1264,
      "loc": {
        "start": {
          "line": 36,
          "column": 17
        },
        "end": {
          "line": 36,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "value",
      "start": 1264,
      "end": 1269,
      "loc": {
        "start": {
          "line": 36,
          "column": 18
        },
        "end": {
          "line": 36,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1269,
      "end": 1270,
      "loc": {
        "start": {
          "line": 36,
          "column": 23
        },
        "end": {
          "line": 36,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1271,
      "end": 1273,
      "loc": {
        "start": {
          "line": 36,
          "column": 25
        },
        "end": {
          "line": 36,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1273,
      "end": 1274,
      "loc": {
        "start": {
          "line": 36,
          "column": 27
        },
        "end": {
          "line": 36,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 1275,
      "end": 1277,
      "loc": {
        "start": {
          "line": 36,
          "column": 29
        },
        "end": {
          "line": 36,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 1278,
      "end": 1283,
      "loc": {
        "start": {
          "line": 36,
          "column": 32
        },
        "end": {
          "line": 36,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1283,
      "end": 1284,
      "loc": {
        "start": {
          "line": 36,
          "column": 37
        },
        "end": {
          "line": 36,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 1284,
      "end": 1291,
      "loc": {
        "start": {
          "line": 36,
          "column": 38
        },
        "end": {
          "line": 36,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1291,
      "end": 1292,
      "loc": {
        "start": {
          "line": 36,
          "column": 45
        },
        "end": {
          "line": 36,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entities",
      "start": 1292,
      "end": 1300,
      "loc": {
        "start": {
          "line": 36,
          "column": 46
        },
        "end": {
          "line": 36,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1300,
      "end": 1301,
      "loc": {
        "start": {
          "line": 36,
          "column": 54
        },
        "end": {
          "line": 36,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "members",
      "start": 1301,
      "end": 1308,
      "loc": {
        "start": {
          "line": 36,
          "column": 55
        },
        "end": {
          "line": 36,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1308,
      "end": 1309,
      "loc": {
        "start": {
          "line": 36,
          "column": 62
        },
        "end": {
          "line": 36,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1310,
      "end": 1311,
      "loc": {
        "start": {
          "line": 36,
          "column": 64
        },
        "end": {
          "line": 36,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 1324,
      "end": 1329,
      "loc": {
        "start": {
          "line": 37,
          "column": 12
        },
        "end": {
          "line": 37,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 1330,
      "end": 1341,
      "loc": {
        "start": {
          "line": 37,
          "column": 18
        },
        "end": {
          "line": 37,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1342,
      "end": 1343,
      "loc": {
        "start": {
          "line": 37,
          "column": 30
        },
        "end": {
          "line": 37,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1344,
      "end": 1348,
      "loc": {
        "start": {
          "line": 37,
          "column": 32
        },
        "end": {
          "line": 37,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1348,
      "end": 1349,
      "loc": {
        "start": {
          "line": 37,
          "column": 36
        },
        "end": {
          "line": 37,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1349,
      "end": 1358,
      "loc": {
        "start": {
          "line": 37,
          "column": 37
        },
        "end": {
          "line": 37,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1358,
      "end": 1359,
      "loc": {
        "start": {
          "line": 37,
          "column": 46
        },
        "end": {
          "line": 37,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 1359,
      "end": 1362,
      "loc": {
        "start": {
          "line": 37,
          "column": 47
        },
        "end": {
          "line": 37,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1362,
      "end": 1363,
      "loc": {
        "start": {
          "line": 37,
          "column": 50
        },
        "end": {
          "line": 37,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1363,
      "end": 1365,
      "loc": {
        "start": {
          "line": 37,
          "column": 51
        },
        "end": {
          "line": 37,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1365,
      "end": 1366,
      "loc": {
        "start": {
          "line": 37,
          "column": 53
        },
        "end": {
          "line": 37,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1366,
      "end": 1367,
      "loc": {
        "start": {
          "line": 37,
          "column": 54
        },
        "end": {
          "line": 37,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 1380,
      "end": 1391,
      "loc": {
        "start": {
          "line": 38,
          "column": 12
        },
        "end": {
          "line": 38,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1391,
      "end": 1392,
      "loc": {
        "start": {
          "line": 38,
          "column": 23
        },
        "end": {
          "line": 38,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "splice",
      "start": 1392,
      "end": 1398,
      "loc": {
        "start": {
          "line": 38,
          "column": 24
        },
        "end": {
          "line": 38,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1398,
      "end": 1399,
      "loc": {
        "start": {
          "line": 38,
          "column": 30
        },
        "end": {
          "line": 38,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 1399,
      "end": 1410,
      "loc": {
        "start": {
          "line": 38,
          "column": 31
        },
        "end": {
          "line": 38,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1410,
      "end": 1411,
      "loc": {
        "start": {
          "line": 38,
          "column": 42
        },
        "end": {
          "line": 38,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "indexOf",
      "start": 1411,
      "end": 1418,
      "loc": {
        "start": {
          "line": 38,
          "column": 43
        },
        "end": {
          "line": 38,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1418,
      "end": 1419,
      "loc": {
        "start": {
          "line": 38,
          "column": 50
        },
        "end": {
          "line": 38,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1419,
      "end": 1429,
      "loc": {
        "start": {
          "line": 38,
          "column": 51
        },
        "end": {
          "line": 38,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1429,
      "end": 1430,
      "loc": {
        "start": {
          "line": 38,
          "column": 61
        },
        "end": {
          "line": 38,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1430,
      "end": 1432,
      "loc": {
        "start": {
          "line": 38,
          "column": 62
        },
        "end": {
          "line": 38,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1432,
      "end": 1433,
      "loc": {
        "start": {
          "line": 38,
          "column": 64
        },
        "end": {
          "line": 38,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1433,
      "end": 1434,
      "loc": {
        "start": {
          "line": 38,
          "column": 65
        },
        "end": {
          "line": 38,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 1435,
      "end": 1436,
      "loc": {
        "start": {
          "line": 38,
          "column": 67
        },
        "end": {
          "line": 38,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1436,
      "end": 1437,
      "loc": {
        "start": {
          "line": 38,
          "column": 68
        },
        "end": {
          "line": 38,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1437,
      "end": 1438,
      "loc": {
        "start": {
          "line": 38,
          "column": 69
        },
        "end": {
          "line": 38,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1451,
      "end": 1453,
      "loc": {
        "start": {
          "line": 39,
          "column": 12
        },
        "end": {
          "line": 39,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1454,
      "end": 1455,
      "loc": {
        "start": {
          "line": 39,
          "column": 15
        },
        "end": {
          "line": 39,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 1455,
      "end": 1466,
      "loc": {
        "start": {
          "line": 39,
          "column": 16
        },
        "end": {
          "line": 39,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1466,
      "end": 1467,
      "loc": {
        "start": {
          "line": 39,
          "column": 27
        },
        "end": {
          "line": 39,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "length",
      "start": 1467,
      "end": 1473,
      "loc": {
        "start": {
          "line": 39,
          "column": 28
        },
        "end": {
          "line": 39,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1474,
      "end": 1477,
      "loc": {
        "start": {
          "line": 39,
          "column": 35
        },
        "end": {
          "line": 39,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 1478,
      "end": 1479,
      "loc": {
        "start": {
          "line": 39,
          "column": 39
        },
        "end": {
          "line": 39,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1479,
      "end": 1480,
      "loc": {
        "start": {
          "line": 39,
          "column": 40
        },
        "end": {
          "line": 39,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1481,
      "end": 1485,
      "loc": {
        "start": {
          "line": 39,
          "column": 42
        },
        "end": {
          "line": 39,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1485,
      "end": 1486,
      "loc": {
        "start": {
          "line": 39,
          "column": 46
        },
        "end": {
          "line": 39,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1486,
      "end": 1495,
      "loc": {
        "start": {
          "line": 39,
          "column": 47
        },
        "end": {
          "line": 39,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1495,
      "end": 1496,
      "loc": {
        "start": {
          "line": 39,
          "column": 56
        },
        "end": {
          "line": 39,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "delete",
        "keyword": "delete",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "delete",
      "start": 1496,
      "end": 1502,
      "loc": {
        "start": {
          "line": 39,
          "column": 57
        },
        "end": {
          "line": 39,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1502,
      "end": 1503,
      "loc": {
        "start": {
          "line": 39,
          "column": 63
        },
        "end": {
          "line": 39,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1503,
      "end": 1505,
      "loc": {
        "start": {
          "line": 39,
          "column": 64
        },
        "end": {
          "line": 39,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1505,
      "end": 1506,
      "loc": {
        "start": {
          "line": 39,
          "column": 66
        },
        "end": {
          "line": 39,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1506,
      "end": 1507,
      "loc": {
        "start": {
          "line": 39,
          "column": 67
        },
        "end": {
          "line": 39,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1516,
      "end": 1517,
      "loc": {
        "start": {
          "line": 40,
          "column": 8
        },
        "end": {
          "line": 40,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1526,
      "end": 1530,
      "loc": {
        "start": {
          "line": 41,
          "column": 8
        },
        "end": {
          "line": 41,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1530,
      "end": 1531,
      "loc": {
        "start": {
          "line": 41,
          "column": 12
        },
        "end": {
          "line": 41,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 1531,
      "end": 1542,
      "loc": {
        "start": {
          "line": 41,
          "column": 13
        },
        "end": {
          "line": 41,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1542,
      "end": 1543,
      "loc": {
        "start": {
          "line": 41,
          "column": 24
        },
        "end": {
          "line": 41,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "delete",
        "keyword": "delete",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "delete",
      "start": 1543,
      "end": 1549,
      "loc": {
        "start": {
          "line": 41,
          "column": 25
        },
        "end": {
          "line": 41,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1549,
      "end": 1550,
      "loc": {
        "start": {
          "line": 41,
          "column": 31
        },
        "end": {
          "line": 41,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1550,
      "end": 1560,
      "loc": {
        "start": {
          "line": 41,
          "column": 32
        },
        "end": {
          "line": 41,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1560,
      "end": 1561,
      "loc": {
        "start": {
          "line": 41,
          "column": 42
        },
        "end": {
          "line": 41,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1561,
      "end": 1563,
      "loc": {
        "start": {
          "line": 41,
          "column": 43
        },
        "end": {
          "line": 41,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1563,
      "end": 1564,
      "loc": {
        "start": {
          "line": 41,
          "column": 45
        },
        "end": {
          "line": 41,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1564,
      "end": 1565,
      "loc": {
        "start": {
          "line": 41,
          "column": 46
        },
        "end": {
          "line": 41,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1570,
      "end": 1571,
      "loc": {
        "start": {
          "line": 42,
          "column": 4
        },
        "end": {
          "line": 42,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateConstraint",
      "start": 1577,
      "end": 1593,
      "loc": {
        "start": {
          "line": 44,
          "column": 4
        },
        "end": {
          "line": 44,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1593,
      "end": 1594,
      "loc": {
        "start": {
          "line": 44,
          "column": 20
        },
        "end": {
          "line": 44,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1594,
      "end": 1604,
      "loc": {
        "start": {
          "line": 44,
          "column": 21
        },
        "end": {
          "line": 44,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1604,
      "end": 1605,
      "loc": {
        "start": {
          "line": 44,
          "column": 31
        },
        "end": {
          "line": 44,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1606,
      "end": 1607,
      "loc": {
        "start": {
          "line": 44,
          "column": 33
        },
        "end": {
          "line": 44,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1616,
      "end": 1620,
      "loc": {
        "start": {
          "line": 45,
          "column": 8
        },
        "end": {
          "line": 45,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1620,
      "end": 1621,
      "loc": {
        "start": {
          "line": 45,
          "column": 12
        },
        "end": {
          "line": 45,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "place",
      "start": 1621,
      "end": 1626,
      "loc": {
        "start": {
          "line": 45,
          "column": 13
        },
        "end": {
          "line": 45,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1626,
      "end": 1627,
      "loc": {
        "start": {
          "line": 45,
          "column": 18
        },
        "end": {
          "line": 45,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1627,
      "end": 1637,
      "loc": {
        "start": {
          "line": 45,
          "column": 19
        },
        "end": {
          "line": 45,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1637,
      "end": 1638,
      "loc": {
        "start": {
          "line": 45,
          "column": 29
        },
        "end": {
          "line": 45,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1639,
      "end": 1649,
      "loc": {
        "start": {
          "line": 45,
          "column": 31
        },
        "end": {
          "line": 45,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1649,
      "end": 1650,
      "loc": {
        "start": {
          "line": 45,
          "column": 41
        },
        "end": {
          "line": 45,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entities",
      "start": 1650,
      "end": 1658,
      "loc": {
        "start": {
          "line": 45,
          "column": 42
        },
        "end": {
          "line": 45,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1658,
      "end": 1659,
      "loc": {
        "start": {
          "line": 45,
          "column": 50
        },
        "end": {
          "line": 45,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 1659,
      "end": 1660,
      "loc": {
        "start": {
          "line": 45,
          "column": 51
        },
        "end": {
          "line": 45,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1660,
      "end": 1661,
      "loc": {
        "start": {
          "line": 45,
          "column": 52
        },
        "end": {
          "line": 45,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1661,
      "end": 1662,
      "loc": {
        "start": {
          "line": 45,
          "column": 53
        },
        "end": {
          "line": 45,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1663,
      "end": 1667,
      "loc": {
        "start": {
          "line": 45,
          "column": 55
        },
        "end": {
          "line": 45,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1667,
      "end": 1668,
      "loc": {
        "start": {
          "line": 45,
          "column": 59
        },
        "end": {
          "line": 45,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 1668,
      "end": 1672,
      "loc": {
        "start": {
          "line": 45,
          "column": 60
        },
        "end": {
          "line": 45,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 1673,
      "end": 1676,
      "loc": {
        "start": {
          "line": 45,
          "column": 65
        },
        "end": {
          "line": 45,
          "column": 68
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 1677,
      "end": 1681,
      "loc": {
        "start": {
          "line": 45,
          "column": 69
        },
        "end": {
          "line": 45,
          "column": 73
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1681,
      "end": 1682,
      "loc": {
        "start": {
          "line": 45,
          "column": 73
        },
        "end": {
          "line": 45,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Always",
      "start": 1682,
      "end": 1688,
      "loc": {
        "start": {
          "line": 45,
          "column": 74
        },
        "end": {
          "line": 45,
          "column": 80
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1688,
      "end": 1689,
      "loc": {
        "start": {
          "line": 45,
          "column": 80
        },
        "end": {
          "line": 45,
          "column": 81
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1689,
      "end": 1690,
      "loc": {
        "start": {
          "line": 45,
          "column": 81
        },
        "end": {
          "line": 45,
          "column": 82
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1695,
      "end": 1696,
      "loc": {
        "start": {
          "line": 46,
          "column": 4
        },
        "end": {
          "line": 46,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateEntity",
      "start": 1702,
      "end": 1714,
      "loc": {
        "start": {
          "line": 48,
          "column": 4
        },
        "end": {
          "line": 48,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1714,
      "end": 1715,
      "loc": {
        "start": {
          "line": 48,
          "column": 16
        },
        "end": {
          "line": 48,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1715,
      "end": 1721,
      "loc": {
        "start": {
          "line": 48,
          "column": 17
        },
        "end": {
          "line": 48,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1721,
      "end": 1722,
      "loc": {
        "start": {
          "line": 48,
          "column": 23
        },
        "end": {
          "line": 48,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1723,
      "end": 1724,
      "loc": {
        "start": {
          "line": 48,
          "column": 25
        },
        "end": {
          "line": 48,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 1733,
      "end": 1736,
      "loc": {
        "start": {
          "line": 49,
          "column": 8
        },
        "end": {
          "line": 49,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1737,
      "end": 1738,
      "loc": {
        "start": {
          "line": 49,
          "column": 12
        },
        "end": {
          "line": 49,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 1738,
      "end": 1741,
      "loc": {
        "start": {
          "line": 49,
          "column": 13
        },
        "end": {
          "line": 49,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1742,
      "end": 1744,
      "loc": {
        "start": {
          "line": 49,
          "column": 17
        },
        "end": {
          "line": 49,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 1745,
      "end": 1747,
      "loc": {
        "start": {
          "line": 49,
          "column": 20
        },
        "end": {
          "line": 49,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1748,
      "end": 1752,
      "loc": {
        "start": {
          "line": 49,
          "column": 23
        },
        "end": {
          "line": 49,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1752,
      "end": 1753,
      "loc": {
        "start": {
          "line": 49,
          "column": 27
        },
        "end": {
          "line": 49,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 1753,
      "end": 1762,
      "loc": {
        "start": {
          "line": 49,
          "column": 28
        },
        "end": {
          "line": 49,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1762,
      "end": 1763,
      "loc": {
        "start": {
          "line": 49,
          "column": 37
        },
        "end": {
          "line": 49,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 1763,
      "end": 1766,
      "loc": {
        "start": {
          "line": 49,
          "column": 38
        },
        "end": {
          "line": 49,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1766,
      "end": 1767,
      "loc": {
        "start": {
          "line": 49,
          "column": 41
        },
        "end": {
          "line": 49,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 1767,
      "end": 1773,
      "loc": {
        "start": {
          "line": 49,
          "column": 42
        },
        "end": {
          "line": 49,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1773,
      "end": 1774,
      "loc": {
        "start": {
          "line": 49,
          "column": 48
        },
        "end": {
          "line": 49,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1774,
      "end": 1776,
      "loc": {
        "start": {
          "line": 49,
          "column": 49
        },
        "end": {
          "line": 49,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1776,
      "end": 1777,
      "loc": {
        "start": {
          "line": 49,
          "column": 51
        },
        "end": {
          "line": 49,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 1778,
      "end": 1780,
      "loc": {
        "start": {
          "line": 49,
          "column": 53
        },
        "end": {
          "line": 49,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1781,
      "end": 1782,
      "loc": {
        "start": {
          "line": 49,
          "column": 56
        },
        "end": {
          "line": 49,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1782,
      "end": 1783,
      "loc": {
        "start": {
          "line": 49,
          "column": 57
        },
        "end": {
          "line": 49,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1783,
      "end": 1784,
      "loc": {
        "start": {
          "line": 49,
          "column": 58
        },
        "end": {
          "line": 49,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1785,
      "end": 1786,
      "loc": {
        "start": {
          "line": 49,
          "column": 60
        },
        "end": {
          "line": 49,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 1799,
      "end": 1804,
      "loc": {
        "start": {
          "line": 50,
          "column": 12
        },
        "end": {
          "line": 50,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1805,
      "end": 1815,
      "loc": {
        "start": {
          "line": 50,
          "column": 18
        },
        "end": {
          "line": 50,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 1816,
      "end": 1817,
      "loc": {
        "start": {
          "line": 50,
          "column": 29
        },
        "end": {
          "line": 50,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 1818,
      "end": 1821,
      "loc": {
        "start": {
          "line": 50,
          "column": 31
        },
        "end": {
          "line": 50,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 1822,
      "end": 1827,
      "loc": {
        "start": {
          "line": 50,
          "column": 35
        },
        "end": {
          "line": 50,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1827,
      "end": 1828,
      "loc": {
        "start": {
          "line": 50,
          "column": 40
        },
        "end": {
          "line": 50,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1828,
      "end": 1832,
      "loc": {
        "start": {
          "line": 50,
          "column": 41
        },
        "end": {
          "line": 50,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1832,
      "end": 1833,
      "loc": {
        "start": {
          "line": 50,
          "column": 45
        },
        "end": {
          "line": 50,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 1833,
      "end": 1841,
      "loc": {
        "start": {
          "line": 50,
          "column": 46
        },
        "end": {
          "line": 50,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1841,
      "end": 1842,
      "loc": {
        "start": {
          "line": 50,
          "column": 54
        },
        "end": {
          "line": 50,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 1843,
      "end": 1845,
      "loc": {
        "start": {
          "line": 50,
          "column": 56
        },
        "end": {
          "line": 50,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1845,
      "end": 1846,
      "loc": {
        "start": {
          "line": 50,
          "column": 58
        },
        "end": {
          "line": 50,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1846,
      "end": 1847,
      "loc": {
        "start": {
          "line": 50,
          "column": 59
        },
        "end": {
          "line": 50,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 1860,
      "end": 1862,
      "loc": {
        "start": {
          "line": 51,
          "column": 12
        },
        "end": {
          "line": 51,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1863,
      "end": 1864,
      "loc": {
        "start": {
          "line": 51,
          "column": 15
        },
        "end": {
          "line": 51,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 1864,
      "end": 1865,
      "loc": {
        "start": {
          "line": 51,
          "column": 16
        },
        "end": {
          "line": 51,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 1865,
      "end": 1875,
      "loc": {
        "start": {
          "line": 51,
          "column": 17
        },
        "end": {
          "line": 51,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1875,
      "end": 1876,
      "loc": {
        "start": {
          "line": 51,
          "column": 27
        },
        "end": {
          "line": 51,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "state",
      "start": 1876,
      "end": 1881,
      "loc": {
        "start": {
          "line": 51,
          "column": 28
        },
        "end": {
          "line": 51,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 1881,
      "end": 1882,
      "loc": {
        "start": {
          "line": 51,
          "column": 33
        },
        "end": {
          "line": 51,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "continue",
        "keyword": "continue",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "continue",
      "start": 1883,
      "end": 1891,
      "loc": {
        "start": {
          "line": 51,
          "column": 35
        },
        "end": {
          "line": 51,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1891,
      "end": 1892,
      "loc": {
        "start": {
          "line": 51,
          "column": 43
        },
        "end": {
          "line": 51,
          "column": 44
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " if entity is updated just before constraint is deleted (e.g. fillet point)",
      "start": 1893,
      "end": 1970,
      "loc": {
        "start": {
          "line": 51,
          "column": 45
        },
        "end": {
          "line": 51,
          "column": 122
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 1983,
      "end": 1987,
      "loc": {
        "start": {
          "line": 52,
          "column": 12
        },
        "end": {
          "line": 52,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 1987,
      "end": 1988,
      "loc": {
        "start": {
          "line": 52,
          "column": 16
        },
        "end": {
          "line": 52,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateConstraint",
      "start": 1988,
      "end": 2004,
      "loc": {
        "start": {
          "line": 52,
          "column": 17
        },
        "end": {
          "line": 52,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2004,
      "end": 2005,
      "loc": {
        "start": {
          "line": 52,
          "column": 33
        },
        "end": {
          "line": 52,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2005,
      "end": 2015,
      "loc": {
        "start": {
          "line": 52,
          "column": 34
        },
        "end": {
          "line": 52,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2015,
      "end": 2016,
      "loc": {
        "start": {
          "line": 52,
          "column": 44
        },
        "end": {
          "line": 52,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2016,
      "end": 2017,
      "loc": {
        "start": {
          "line": 52,
          "column": 45
        },
        "end": {
          "line": 52,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2026,
      "end": 2027,
      "loc": {
        "start": {
          "line": 53,
          "column": 8
        },
        "end": {
          "line": 53,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2032,
      "end": 2033,
      "loc": {
        "start": {
          "line": 54,
          "column": 4
        },
        "end": {
          "line": 54,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "hover",
      "start": 2039,
      "end": 2044,
      "loc": {
        "start": {
          "line": 56,
          "column": 4
        },
        "end": {
          "line": 56,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2044,
      "end": 2045,
      "loc": {
        "start": {
          "line": 56,
          "column": 9
        },
        "end": {
          "line": 56,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2045,
      "end": 2051,
      "loc": {
        "start": {
          "line": 56,
          "column": 10
        },
        "end": {
          "line": 56,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2051,
      "end": 2052,
      "loc": {
        "start": {
          "line": 56,
          "column": 16
        },
        "end": {
          "line": 56,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "first",
      "start": 2053,
      "end": 2058,
      "loc": {
        "start": {
          "line": 56,
          "column": 18
        },
        "end": {
          "line": 56,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2058,
      "end": 2059,
      "loc": {
        "start": {
          "line": 56,
          "column": 23
        },
        "end": {
          "line": 56,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2060,
      "end": 2061,
      "loc": {
        "start": {
          "line": 56,
          "column": 25
        },
        "end": {
          "line": 56,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2070,
      "end": 2072,
      "loc": {
        "start": {
          "line": 57,
          "column": 8
        },
        "end": {
          "line": 57,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2073,
      "end": 2074,
      "loc": {
        "start": {
          "line": 57,
          "column": 11
        },
        "end": {
          "line": 57,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2074,
      "end": 2078,
      "loc": {
        "start": {
          "line": 57,
          "column": 12
        },
        "end": {
          "line": 57,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2078,
      "end": 2079,
      "loc": {
        "start": {
          "line": 57,
          "column": 16
        },
        "end": {
          "line": 57,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 2079,
      "end": 2083,
      "loc": {
        "start": {
          "line": 57,
          "column": 17
        },
        "end": {
          "line": 57,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2084,
      "end": 2087,
      "loc": {
        "start": {
          "line": 57,
          "column": 22
        },
        "end": {
          "line": 57,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 2088,
      "end": 2092,
      "loc": {
        "start": {
          "line": 57,
          "column": 26
        },
        "end": {
          "line": 57,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2092,
      "end": 2093,
      "loc": {
        "start": {
          "line": 57,
          "column": 30
        },
        "end": {
          "line": 57,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 2093,
      "end": 2098,
      "loc": {
        "start": {
          "line": 57,
          "column": 31
        },
        "end": {
          "line": 57,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2098,
      "end": 2099,
      "loc": {
        "start": {
          "line": 57,
          "column": 36
        },
        "end": {
          "line": 57,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2100,
      "end": 2106,
      "loc": {
        "start": {
          "line": 57,
          "column": 38
        },
        "end": {
          "line": 57,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2106,
      "end": 2107,
      "loc": {
        "start": {
          "line": 57,
          "column": 44
        },
        "end": {
          "line": 57,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2116,
      "end": 2118,
      "loc": {
        "start": {
          "line": 58,
          "column": 8
        },
        "end": {
          "line": 58,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2119,
      "end": 2120,
      "loc": {
        "start": {
          "line": 58,
          "column": 11
        },
        "end": {
          "line": 58,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2120,
      "end": 2126,
      "loc": {
        "start": {
          "line": 58,
          "column": 12
        },
        "end": {
          "line": 58,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2126,
      "end": 2127,
      "loc": {
        "start": {
          "line": 58,
          "column": 18
        },
        "end": {
          "line": 58,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isConstraint",
      "start": 2127,
      "end": 2139,
      "loc": {
        "start": {
          "line": 58,
          "column": 19
        },
        "end": {
          "line": 58,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2139,
      "end": 2140,
      "loc": {
        "start": {
          "line": 58,
          "column": 31
        },
        "end": {
          "line": 58,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2140,
      "end": 2141,
      "loc": {
        "start": {
          "line": 58,
          "column": 32
        },
        "end": {
          "line": 58,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2141,
      "end": 2142,
      "loc": {
        "start": {
          "line": 58,
          "column": 33
        },
        "end": {
          "line": 58,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2143,
      "end": 2149,
      "loc": {
        "start": {
          "line": 58,
          "column": 35
        },
        "end": {
          "line": 58,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2149,
      "end": 2150,
      "loc": {
        "start": {
          "line": 58,
          "column": 41
        },
        "end": {
          "line": 58,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2159,
      "end": 2161,
      "loc": {
        "start": {
          "line": 59,
          "column": 8
        },
        "end": {
          "line": 59,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2162,
      "end": 2163,
      "loc": {
        "start": {
          "line": 59,
          "column": 11
        },
        "end": {
          "line": 59,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "first",
      "start": 2163,
      "end": 2168,
      "loc": {
        "start": {
          "line": 59,
          "column": 12
        },
        "end": {
          "line": 59,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2168,
      "end": 2169,
      "loc": {
        "start": {
          "line": 59,
          "column": 17
        },
        "end": {
          "line": 59,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2170,
      "end": 2174,
      "loc": {
        "start": {
          "line": 59,
          "column": 19
        },
        "end": {
          "line": 59,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2174,
      "end": 2175,
      "loc": {
        "start": {
          "line": 59,
          "column": 23
        },
        "end": {
          "line": 59,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unhoverAll",
      "start": 2175,
      "end": 2185,
      "loc": {
        "start": {
          "line": 59,
          "column": 24
        },
        "end": {
          "line": 59,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2185,
      "end": 2186,
      "loc": {
        "start": {
          "line": 59,
          "column": 34
        },
        "end": {
          "line": 59,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2186,
      "end": 2187,
      "loc": {
        "start": {
          "line": 59,
          "column": 35
        },
        "end": {
          "line": 59,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2187,
      "end": 2188,
      "loc": {
        "start": {
          "line": 59,
          "column": 36
        },
        "end": {
          "line": 59,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 2197,
      "end": 2200,
      "loc": {
        "start": {
          "line": 60,
          "column": 8
        },
        "end": {
          "line": 60,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2201,
      "end": 2202,
      "loc": {
        "start": {
          "line": 60,
          "column": 12
        },
        "end": {
          "line": 60,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 2202,
      "end": 2205,
      "loc": {
        "start": {
          "line": 60,
          "column": 13
        },
        "end": {
          "line": 60,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2206,
      "end": 2208,
      "loc": {
        "start": {
          "line": 60,
          "column": 17
        },
        "end": {
          "line": 60,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 2209,
      "end": 2211,
      "loc": {
        "start": {
          "line": 60,
          "column": 20
        },
        "end": {
          "line": 60,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2212,
      "end": 2216,
      "loc": {
        "start": {
          "line": 60,
          "column": 23
        },
        "end": {
          "line": 60,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2216,
      "end": 2217,
      "loc": {
        "start": {
          "line": 60,
          "column": 27
        },
        "end": {
          "line": 60,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entityFor",
      "start": 2217,
      "end": 2226,
      "loc": {
        "start": {
          "line": 60,
          "column": 28
        },
        "end": {
          "line": 60,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2226,
      "end": 2227,
      "loc": {
        "start": {
          "line": 60,
          "column": 37
        },
        "end": {
          "line": 60,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "get",
      "start": 2227,
      "end": 2230,
      "loc": {
        "start": {
          "line": 60,
          "column": 38
        },
        "end": {
          "line": 60,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2230,
      "end": 2231,
      "loc": {
        "start": {
          "line": 60,
          "column": 41
        },
        "end": {
          "line": 60,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2231,
      "end": 2237,
      "loc": {
        "start": {
          "line": 60,
          "column": 42
        },
        "end": {
          "line": 60,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2237,
      "end": 2238,
      "loc": {
        "start": {
          "line": 60,
          "column": 48
        },
        "end": {
          "line": 60,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2238,
      "end": 2240,
      "loc": {
        "start": {
          "line": 60,
          "column": 49
        },
        "end": {
          "line": 60,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2240,
      "end": 2241,
      "loc": {
        "start": {
          "line": 60,
          "column": 51
        },
        "end": {
          "line": 60,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "||",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 1,
        "updateContext": null
      },
      "value": "||",
      "start": 2242,
      "end": 2244,
      "loc": {
        "start": {
          "line": 60,
          "column": 53
        },
        "end": {
          "line": 60,
          "column": 55
        }
      }
    },
    {
      "type": {
        "label": "[",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2245,
      "end": 2246,
      "loc": {
        "start": {
          "line": 60,
          "column": 56
        },
        "end": {
          "line": 60,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": "]",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2246,
      "end": 2247,
      "loc": {
        "start": {
          "line": 60,
          "column": 57
        },
        "end": {
          "line": 60,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2247,
      "end": 2248,
      "loc": {
        "start": {
          "line": 60,
          "column": 58
        },
        "end": {
          "line": 60,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2261,
      "end": 2265,
      "loc": {
        "start": {
          "line": 61,
          "column": 12
        },
        "end": {
          "line": 61,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2265,
      "end": 2266,
      "loc": {
        "start": {
          "line": 61,
          "column": 16
        },
        "end": {
          "line": 61,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "place",
      "start": 2266,
      "end": 2271,
      "loc": {
        "start": {
          "line": 61,
          "column": 17
        },
        "end": {
          "line": 61,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2271,
      "end": 2272,
      "loc": {
        "start": {
          "line": 61,
          "column": 22
        },
        "end": {
          "line": 61,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 2272,
      "end": 2275,
      "loc": {
        "start": {
          "line": 61,
          "column": 23
        },
        "end": {
          "line": 61,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 2276,
      "end": 2281,
      "loc": {
        "start": {
          "line": 61,
          "column": 27
        },
        "end": {
          "line": 61,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2281,
      "end": 2282,
      "loc": {
        "start": {
          "line": 61,
          "column": 32
        },
        "end": {
          "line": 61,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2282,
      "end": 2286,
      "loc": {
        "start": {
          "line": 61,
          "column": 33
        },
        "end": {
          "line": 61,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2286,
      "end": 2287,
      "loc": {
        "start": {
          "line": 61,
          "column": 37
        },
        "end": {
          "line": 61,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 2287,
      "end": 2295,
      "loc": {
        "start": {
          "line": 61,
          "column": 38
        },
        "end": {
          "line": 61,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2295,
      "end": 2296,
      "loc": {
        "start": {
          "line": 61,
          "column": 46
        },
        "end": {
          "line": 61,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 2297,
      "end": 2299,
      "loc": {
        "start": {
          "line": 61,
          "column": 48
        },
        "end": {
          "line": 61,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2299,
      "end": 2300,
      "loc": {
        "start": {
          "line": 61,
          "column": 50
        },
        "end": {
          "line": 61,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2300,
      "end": 2301,
      "loc": {
        "start": {
          "line": 61,
          "column": 51
        },
        "end": {
          "line": 61,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2302,
      "end": 2308,
      "loc": {
        "start": {
          "line": 61,
          "column": 53
        },
        "end": {
          "line": 61,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2308,
      "end": 2309,
      "loc": {
        "start": {
          "line": 61,
          "column": 59
        },
        "end": {
          "line": 61,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "true",
        "keyword": "true",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "true",
      "start": 2310,
      "end": 2314,
      "loc": {
        "start": {
          "line": 61,
          "column": 61
        },
        "end": {
          "line": 61,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2314,
      "end": 2315,
      "loc": {
        "start": {
          "line": 61,
          "column": 65
        },
        "end": {
          "line": 61,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2315,
      "end": 2316,
      "loc": {
        "start": {
          "line": 61,
          "column": 66
        },
        "end": {
          "line": 61,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2321,
      "end": 2322,
      "loc": {
        "start": {
          "line": 62,
          "column": 4
        },
        "end": {
          "line": 62,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unhover",
      "start": 2328,
      "end": 2335,
      "loc": {
        "start": {
          "line": 64,
          "column": 4
        },
        "end": {
          "line": 64,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2335,
      "end": 2336,
      "loc": {
        "start": {
          "line": 64,
          "column": 11
        },
        "end": {
          "line": 64,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2336,
      "end": 2342,
      "loc": {
        "start": {
          "line": 64,
          "column": 12
        },
        "end": {
          "line": 64,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2342,
      "end": 2343,
      "loc": {
        "start": {
          "line": 64,
          "column": 18
        },
        "end": {
          "line": 64,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "first",
      "start": 2344,
      "end": 2349,
      "loc": {
        "start": {
          "line": 64,
          "column": 20
        },
        "end": {
          "line": 64,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2349,
      "end": 2350,
      "loc": {
        "start": {
          "line": 64,
          "column": 25
        },
        "end": {
          "line": 64,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2351,
      "end": 2352,
      "loc": {
        "start": {
          "line": 64,
          "column": 27
        },
        "end": {
          "line": 64,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2361,
      "end": 2363,
      "loc": {
        "start": {
          "line": 65,
          "column": 8
        },
        "end": {
          "line": 65,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2364,
      "end": 2365,
      "loc": {
        "start": {
          "line": 65,
          "column": 11
        },
        "end": {
          "line": 65,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2365,
      "end": 2369,
      "loc": {
        "start": {
          "line": 65,
          "column": 12
        },
        "end": {
          "line": 65,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2369,
      "end": 2370,
      "loc": {
        "start": {
          "line": 65,
          "column": 16
        },
        "end": {
          "line": 65,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 2370,
      "end": 2374,
      "loc": {
        "start": {
          "line": 65,
          "column": 17
        },
        "end": {
          "line": 65,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2375,
      "end": 2378,
      "loc": {
        "start": {
          "line": 65,
          "column": 22
        },
        "end": {
          "line": 65,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 2379,
      "end": 2383,
      "loc": {
        "start": {
          "line": 65,
          "column": 26
        },
        "end": {
          "line": 65,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2383,
      "end": 2384,
      "loc": {
        "start": {
          "line": 65,
          "column": 30
        },
        "end": {
          "line": 65,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 2384,
      "end": 2389,
      "loc": {
        "start": {
          "line": 65,
          "column": 31
        },
        "end": {
          "line": 65,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2389,
      "end": 2390,
      "loc": {
        "start": {
          "line": 65,
          "column": 36
        },
        "end": {
          "line": 65,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2391,
      "end": 2397,
      "loc": {
        "start": {
          "line": 65,
          "column": 38
        },
        "end": {
          "line": 65,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2397,
      "end": 2398,
      "loc": {
        "start": {
          "line": 65,
          "column": 44
        },
        "end": {
          "line": 65,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2407,
      "end": 2409,
      "loc": {
        "start": {
          "line": 66,
          "column": 8
        },
        "end": {
          "line": 66,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2410,
      "end": 2411,
      "loc": {
        "start": {
          "line": 66,
          "column": 11
        },
        "end": {
          "line": 66,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2411,
      "end": 2417,
      "loc": {
        "start": {
          "line": 66,
          "column": 12
        },
        "end": {
          "line": 66,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2417,
      "end": 2418,
      "loc": {
        "start": {
          "line": 66,
          "column": 18
        },
        "end": {
          "line": 66,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "isConstraint",
      "start": 2418,
      "end": 2430,
      "loc": {
        "start": {
          "line": 66,
          "column": 19
        },
        "end": {
          "line": 66,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2430,
      "end": 2431,
      "loc": {
        "start": {
          "line": 66,
          "column": 31
        },
        "end": {
          "line": 66,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2431,
      "end": 2432,
      "loc": {
        "start": {
          "line": 66,
          "column": 32
        },
        "end": {
          "line": 66,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2432,
      "end": 2433,
      "loc": {
        "start": {
          "line": 66,
          "column": 33
        },
        "end": {
          "line": 66,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2434,
      "end": 2440,
      "loc": {
        "start": {
          "line": 66,
          "column": 35
        },
        "end": {
          "line": 66,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2440,
      "end": 2441,
      "loc": {
        "start": {
          "line": 66,
          "column": 41
        },
        "end": {
          "line": 66,
          "column": 42
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " do nothing",
      "start": 2450,
      "end": 2463,
      "loc": {
        "start": {
          "line": 67,
          "column": 8
        },
        "end": {
          "line": 67,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2468,
      "end": 2469,
      "loc": {
        "start": {
          "line": 68,
          "column": 4
        },
        "end": {
          "line": 68,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "unhoverAll",
      "start": 2475,
      "end": 2485,
      "loc": {
        "start": {
          "line": 70,
          "column": 4
        },
        "end": {
          "line": 70,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2485,
      "end": 2486,
      "loc": {
        "start": {
          "line": 70,
          "column": 14
        },
        "end": {
          "line": 70,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2486,
      "end": 2487,
      "loc": {
        "start": {
          "line": 70,
          "column": 15
        },
        "end": {
          "line": 70,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2488,
      "end": 2489,
      "loc": {
        "start": {
          "line": 70,
          "column": 17
        },
        "end": {
          "line": 70,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2498,
      "end": 2500,
      "loc": {
        "start": {
          "line": 71,
          "column": 8
        },
        "end": {
          "line": 71,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2501,
      "end": 2502,
      "loc": {
        "start": {
          "line": 71,
          "column": 11
        },
        "end": {
          "line": 71,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2502,
      "end": 2506,
      "loc": {
        "start": {
          "line": 71,
          "column": 12
        },
        "end": {
          "line": 71,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2506,
      "end": 2507,
      "loc": {
        "start": {
          "line": 71,
          "column": 16
        },
        "end": {
          "line": 71,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 2507,
      "end": 2511,
      "loc": {
        "start": {
          "line": 71,
          "column": 17
        },
        "end": {
          "line": 71,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "!==",
      "start": 2512,
      "end": 2515,
      "loc": {
        "start": {
          "line": 71,
          "column": 22
        },
        "end": {
          "line": 71,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Mode",
      "start": 2516,
      "end": 2520,
      "loc": {
        "start": {
          "line": 71,
          "column": 26
        },
        "end": {
          "line": 71,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2520,
      "end": 2521,
      "loc": {
        "start": {
          "line": 71,
          "column": 30
        },
        "end": {
          "line": 71,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Hover",
      "start": 2521,
      "end": 2526,
      "loc": {
        "start": {
          "line": 71,
          "column": 31
        },
        "end": {
          "line": 71,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2526,
      "end": 2527,
      "loc": {
        "start": {
          "line": 71,
          "column": 36
        },
        "end": {
          "line": 71,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2528,
      "end": 2534,
      "loc": {
        "start": {
          "line": 71,
          "column": 38
        },
        "end": {
          "line": 71,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2534,
      "end": 2535,
      "loc": {
        "start": {
          "line": 71,
          "column": 44
        },
        "end": {
          "line": 71,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2544,
      "end": 2546,
      "loc": {
        "start": {
          "line": 72,
          "column": 8
        },
        "end": {
          "line": 72,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2547,
      "end": 2548,
      "loc": {
        "start": {
          "line": 72,
          "column": 11
        },
        "end": {
          "line": 72,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2548,
      "end": 2552,
      "loc": {
        "start": {
          "line": 72,
          "column": 12
        },
        "end": {
          "line": 72,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2552,
      "end": 2553,
      "loc": {
        "start": {
          "line": 72,
          "column": 16
        },
        "end": {
          "line": 72,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePositions",
      "start": 2553,
      "end": 2569,
      "loc": {
        "start": {
          "line": 72,
          "column": 17
        },
        "end": {
          "line": 72,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2569,
      "end": 2570,
      "loc": {
        "start": {
          "line": 72,
          "column": 33
        },
        "end": {
          "line": 72,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "size",
      "start": 2570,
      "end": 2574,
      "loc": {
        "start": {
          "line": 72,
          "column": 34
        },
        "end": {
          "line": 72,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "==/!=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 6,
        "updateContext": null
      },
      "value": "===",
      "start": 2575,
      "end": 2578,
      "loc": {
        "start": {
          "line": 72,
          "column": 39
        },
        "end": {
          "line": 72,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 2579,
      "end": 2580,
      "loc": {
        "start": {
          "line": 72,
          "column": 43
        },
        "end": {
          "line": 72,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2580,
      "end": 2581,
      "loc": {
        "start": {
          "line": 72,
          "column": 44
        },
        "end": {
          "line": 72,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2582,
      "end": 2588,
      "loc": {
        "start": {
          "line": 72,
          "column": 46
        },
        "end": {
          "line": 72,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2588,
      "end": 2589,
      "loc": {
        "start": {
          "line": 72,
          "column": 52
        },
        "end": {
          "line": 72,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2598,
      "end": 2602,
      "loc": {
        "start": {
          "line": 73,
          "column": 8
        },
        "end": {
          "line": 73,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2602,
      "end": 2603,
      "loc": {
        "start": {
          "line": 73,
          "column": 12
        },
        "end": {
          "line": 73,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateAll",
      "start": 2603,
      "end": 2612,
      "loc": {
        "start": {
          "line": 73,
          "column": 13
        },
        "end": {
          "line": 73,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2612,
      "end": 2613,
      "loc": {
        "start": {
          "line": 73,
          "column": 22
        },
        "end": {
          "line": 73,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2613,
      "end": 2614,
      "loc": {
        "start": {
          "line": 73,
          "column": 23
        },
        "end": {
          "line": 73,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2614,
      "end": 2615,
      "loc": {
        "start": {
          "line": 73,
          "column": 24
        },
        "end": {
          "line": 73,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2620,
      "end": 2621,
      "loc": {
        "start": {
          "line": 74,
          "column": 4
        },
        "end": {
          "line": 74,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "place",
      "start": 2627,
      "end": 2632,
      "loc": {
        "start": {
          "line": 76,
          "column": 4
        },
        "end": {
          "line": 76,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2632,
      "end": 2633,
      "loc": {
        "start": {
          "line": 76,
          "column": 9
        },
        "end": {
          "line": 76,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2633,
      "end": 2643,
      "loc": {
        "start": {
          "line": 76,
          "column": 10
        },
        "end": {
          "line": 76,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2643,
      "end": 2644,
      "loc": {
        "start": {
          "line": 76,
          "column": 20
        },
        "end": {
          "line": 76,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2645,
      "end": 2651,
      "loc": {
        "start": {
          "line": 76,
          "column": 22
        },
        "end": {
          "line": 76,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2651,
      "end": 2652,
      "loc": {
        "start": {
          "line": 76,
          "column": 28
        },
        "end": {
          "line": 76,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visible",
      "start": 2653,
      "end": 2660,
      "loc": {
        "start": {
          "line": 76,
          "column": 30
        },
        "end": {
          "line": 76,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2660,
      "end": 2661,
      "loc": {
        "start": {
          "line": 76,
          "column": 37
        },
        "end": {
          "line": 76,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2662,
      "end": 2663,
      "loc": {
        "start": {
          "line": 76,
          "column": 39
        },
        "end": {
          "line": 76,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 2672,
      "end": 2677,
      "loc": {
        "start": {
          "line": 77,
          "column": 8
        },
        "end": {
          "line": 77,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 2678,
      "end": 2686,
      "loc": {
        "start": {
          "line": 77,
          "column": 14
        },
        "end": {
          "line": 77,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2687,
      "end": 2688,
      "loc": {
        "start": {
          "line": 77,
          "column": 23
        },
        "end": {
          "line": 77,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraint",
      "start": 2689,
      "end": 2699,
      "loc": {
        "start": {
          "line": 77,
          "column": 25
        },
        "end": {
          "line": 77,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2699,
      "end": 2700,
      "loc": {
        "start": {
          "line": 77,
          "column": 35
        },
        "end": {
          "line": 77,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 2700,
      "end": 2708,
      "loc": {
        "start": {
          "line": 77,
          "column": 36
        },
        "end": {
          "line": 77,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2708,
      "end": 2709,
      "loc": {
        "start": {
          "line": 77,
          "column": 44
        },
        "end": {
          "line": 77,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 2710,
      "end": 2718,
      "loc": {
        "start": {
          "line": 77,
          "column": 46
        },
        "end": {
          "line": 77,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2719,
      "end": 2720,
      "loc": {
        "start": {
          "line": 77,
          "column": 55
        },
        "end": {
          "line": 77,
          "column": 56
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 2721,
      "end": 2729,
      "loc": {
        "start": {
          "line": 77,
          "column": 57
        },
        "end": {
          "line": 77,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2729,
      "end": 2730,
      "loc": {
        "start": {
          "line": 77,
          "column": 65
        },
        "end": {
          "line": 77,
          "column": 66
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "localMesh",
      "start": 2730,
      "end": 2739,
      "loc": {
        "start": {
          "line": 77,
          "column": 66
        },
        "end": {
          "line": 77,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2739,
      "end": 2740,
      "loc": {
        "start": {
          "line": 77,
          "column": 75
        },
        "end": {
          "line": 77,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 2740,
      "end": 2748,
      "loc": {
        "start": {
          "line": 77,
          "column": 76
        },
        "end": {
          "line": 77,
          "column": 84
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2748,
      "end": 2749,
      "loc": {
        "start": {
          "line": 77,
          "column": 84
        },
        "end": {
          "line": 77,
          "column": 85
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 2750,
      "end": 2752,
      "loc": {
        "start": {
          "line": 77,
          "column": 86
        },
        "end": {
          "line": 77,
          "column": 88
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2753,
      "end": 2754,
      "loc": {
        "start": {
          "line": 77,
          "column": 89
        },
        "end": {
          "line": 77,
          "column": 90
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2755,
      "end": 2761,
      "loc": {
        "start": {
          "line": 77,
          "column": 91
        },
        "end": {
          "line": 77,
          "column": 97
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2761,
      "end": 2762,
      "loc": {
        "start": {
          "line": 77,
          "column": 97
        },
        "end": {
          "line": 77,
          "column": 98
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "geomParams",
      "start": 2762,
      "end": 2772,
      "loc": {
        "start": {
          "line": 77,
          "column": 98
        },
        "end": {
          "line": 77,
          "column": 108
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2772,
      "end": 2773,
      "loc": {
        "start": {
          "line": 77,
          "column": 108
        },
        "end": {
          "line": 77,
          "column": 109
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 2782,
      "end": 2786,
      "loc": {
        "start": {
          "line": 78,
          "column": 8
        },
        "end": {
          "line": 78,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2786,
      "end": 2787,
      "loc": {
        "start": {
          "line": 78,
          "column": 12
        },
        "end": {
          "line": 78,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePositions",
      "start": 2787,
      "end": 2803,
      "loc": {
        "start": {
          "line": 78,
          "column": 13
        },
        "end": {
          "line": 78,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2803,
      "end": 2804,
      "loc": {
        "start": {
          "line": 78,
          "column": 29
        },
        "end": {
          "line": 78,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "delete",
        "keyword": "delete",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "delete",
      "start": 2804,
      "end": 2810,
      "loc": {
        "start": {
          "line": 78,
          "column": 30
        },
        "end": {
          "line": 78,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2810,
      "end": 2811,
      "loc": {
        "start": {
          "line": 78,
          "column": 36
        },
        "end": {
          "line": 78,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 2811,
      "end": 2819,
      "loc": {
        "start": {
          "line": 78,
          "column": 37
        },
        "end": {
          "line": 78,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2819,
      "end": 2820,
      "loc": {
        "start": {
          "line": 78,
          "column": 45
        },
        "end": {
          "line": 78,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2820,
      "end": 2821,
      "loc": {
        "start": {
          "line": 78,
          "column": 46
        },
        "end": {
          "line": 78,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 2830,
      "end": 2838,
      "loc": {
        "start": {
          "line": 79,
          "column": 8
        },
        "end": {
          "line": 79,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2838,
      "end": 2839,
      "loc": {
        "start": {
          "line": 79,
          "column": 16
        },
        "end": {
          "line": 79,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visible",
      "start": 2839,
      "end": 2846,
      "loc": {
        "start": {
          "line": 79,
          "column": 17
        },
        "end": {
          "line": 79,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 2847,
      "end": 2848,
      "loc": {
        "start": {
          "line": 79,
          "column": 25
        },
        "end": {
          "line": 79,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visible",
      "start": 2849,
      "end": 2856,
      "loc": {
        "start": {
          "line": 79,
          "column": 27
        },
        "end": {
          "line": 79,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2856,
      "end": 2857,
      "loc": {
        "start": {
          "line": 79,
          "column": 34
        },
        "end": {
          "line": 79,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 2866,
      "end": 2868,
      "loc": {
        "start": {
          "line": 80,
          "column": 8
        },
        "end": {
          "line": 80,
          "column": 10
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2869,
      "end": 2870,
      "loc": {
        "start": {
          "line": 80,
          "column": 11
        },
        "end": {
          "line": 80,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": "prefix",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "!",
      "start": 2870,
      "end": 2871,
      "loc": {
        "start": {
          "line": 80,
          "column": 12
        },
        "end": {
          "line": 80,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visible",
      "start": 2871,
      "end": 2878,
      "loc": {
        "start": {
          "line": 80,
          "column": 13
        },
        "end": {
          "line": 80,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2878,
      "end": 2879,
      "loc": {
        "start": {
          "line": 80,
          "column": 20
        },
        "end": {
          "line": 80,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "return",
        "keyword": "return",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "return",
      "start": 2880,
      "end": 2886,
      "loc": {
        "start": {
          "line": 80,
          "column": 22
        },
        "end": {
          "line": 80,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2886,
      "end": 2887,
      "loc": {
        "start": {
          "line": 80,
          "column": 28
        },
        "end": {
          "line": 80,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "switch",
        "keyword": "switch",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "switch",
      "start": 2896,
      "end": 2902,
      "loc": {
        "start": {
          "line": 81,
          "column": 8
        },
        "end": {
          "line": 81,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2903,
      "end": 2904,
      "loc": {
        "start": {
          "line": 81,
          "column": 15
        },
        "end": {
          "line": 81,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "entity",
      "start": 2904,
      "end": 2910,
      "loc": {
        "start": {
          "line": 81,
          "column": 16
        },
        "end": {
          "line": 81,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2910,
      "end": 2911,
      "loc": {
        "start": {
          "line": 81,
          "column": 22
        },
        "end": {
          "line": 81,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": "class",
        "keyword": "class",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "class",
      "start": 2911,
      "end": 2916,
      "loc": {
        "start": {
          "line": 81,
          "column": 23
        },
        "end": {
          "line": 81,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2916,
      "end": 2917,
      "loc": {
        "start": {
          "line": 81,
          "column": 28
        },
        "end": {
          "line": 81,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2918,
      "end": 2919,
      "loc": {
        "start": {
          "line": 81,
          "column": 30
        },
        "end": {
          "line": 81,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 2932,
      "end": 2936,
      "loc": {
        "start": {
          "line": 82,
          "column": 12
        },
        "end": {
          "line": 82,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Point",
      "start": 2937,
      "end": 2947,
      "loc": {
        "start": {
          "line": 82,
          "column": 17
        },
        "end": {
          "line": 82,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2947,
      "end": 2948,
      "loc": {
        "start": {
          "line": 82,
          "column": 27
        },
        "end": {
          "line": 82,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 2965,
      "end": 2973,
      "loc": {
        "start": {
          "line": 83,
          "column": 16
        },
        "end": {
          "line": 83,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2973,
      "end": 2974,
      "loc": {
        "start": {
          "line": 83,
          "column": 24
        },
        "end": {
          "line": 83,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "copy",
      "start": 2974,
      "end": 2978,
      "loc": {
        "start": {
          "line": 83,
          "column": 25
        },
        "end": {
          "line": 83,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2978,
      "end": 2979,
      "loc": {
        "start": {
          "line": 83,
          "column": 29
        },
        "end": {
          "line": 83,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 2979,
      "end": 2981,
      "loc": {
        "start": {
          "line": 83,
          "column": 30
        },
        "end": {
          "line": 83,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2981,
      "end": 2982,
      "loc": {
        "start": {
          "line": 83,
          "column": 32
        },
        "end": {
          "line": 83,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 2982,
      "end": 2987,
      "loc": {
        "start": {
          "line": 83,
          "column": 33
        },
        "end": {
          "line": 83,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 2987,
      "end": 2988,
      "loc": {
        "start": {
          "line": 83,
          "column": 38
        },
        "end": {
          "line": 83,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2988,
      "end": 2989,
      "loc": {
        "start": {
          "line": 83,
          "column": 39
        },
        "end": {
          "line": 83,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "break",
        "keyword": "break",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "break",
      "start": 3006,
      "end": 3011,
      "loc": {
        "start": {
          "line": 84,
          "column": 16
        },
        "end": {
          "line": 84,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3011,
      "end": 3012,
      "loc": {
        "start": {
          "line": 84,
          "column": 21
        },
        "end": {
          "line": 84,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 3025,
      "end": 3029,
      "loc": {
        "start": {
          "line": 85,
          "column": 12
        },
        "end": {
          "line": 85,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Line",
      "start": 3030,
      "end": 3039,
      "loc": {
        "start": {
          "line": 85,
          "column": 17
        },
        "end": {
          "line": 85,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3039,
      "end": 3040,
      "loc": {
        "start": {
          "line": 85,
          "column": 26
        },
        "end": {
          "line": 85,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3057,
      "end": 3065,
      "loc": {
        "start": {
          "line": 86,
          "column": 16
        },
        "end": {
          "line": 86,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3065,
      "end": 3066,
      "loc": {
        "start": {
          "line": 86,
          "column": 24
        },
        "end": {
          "line": 86,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "lerpVectors",
      "start": 3066,
      "end": 3077,
      "loc": {
        "start": {
          "line": 86,
          "column": 25
        },
        "end": {
          "line": 86,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3077,
      "end": 3078,
      "loc": {
        "start": {
          "line": 86,
          "column": 36
        },
        "end": {
          "line": 86,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 3078,
      "end": 3080,
      "loc": {
        "start": {
          "line": 86,
          "column": 37
        },
        "end": {
          "line": 86,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3080,
      "end": 3081,
      "loc": {
        "start": {
          "line": 86,
          "column": 39
        },
        "end": {
          "line": 86,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "start",
      "start": 3081,
      "end": 3086,
      "loc": {
        "start": {
          "line": 86,
          "column": 40
        },
        "end": {
          "line": 86,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3086,
      "end": 3087,
      "loc": {
        "start": {
          "line": 86,
          "column": 45
        },
        "end": {
          "line": 86,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 3088,
      "end": 3090,
      "loc": {
        "start": {
          "line": 86,
          "column": 47
        },
        "end": {
          "line": 86,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3090,
      "end": 3091,
      "loc": {
        "start": {
          "line": 86,
          "column": 49
        },
        "end": {
          "line": 86,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "end",
      "start": 3091,
      "end": 3094,
      "loc": {
        "start": {
          "line": 86,
          "column": 50
        },
        "end": {
          "line": 86,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3094,
      "end": 3095,
      "loc": {
        "start": {
          "line": 86,
          "column": 53
        },
        "end": {
          "line": 86,
          "column": 54
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0.5,
      "start": 3096,
      "end": 3099,
      "loc": {
        "start": {
          "line": 86,
          "column": 55
        },
        "end": {
          "line": 86,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3099,
      "end": 3100,
      "loc": {
        "start": {
          "line": 86,
          "column": 58
        },
        "end": {
          "line": 86,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3100,
      "end": 3101,
      "loc": {
        "start": {
          "line": 86,
          "column": 59
        },
        "end": {
          "line": 86,
          "column": 60
        }
      }
    },
    {
      "type": {
        "label": "break",
        "keyword": "break",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "break",
      "start": 3118,
      "end": 3123,
      "loc": {
        "start": {
          "line": 87,
          "column": 16
        },
        "end": {
          "line": 87,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3123,
      "end": 3124,
      "loc": {
        "start": {
          "line": 87,
          "column": 21
        },
        "end": {
          "line": 87,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 3137,
      "end": 3141,
      "loc": {
        "start": {
          "line": 88,
          "column": 12
        },
        "end": {
          "line": 88,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Arc",
      "start": 3142,
      "end": 3150,
      "loc": {
        "start": {
          "line": 88,
          "column": 17
        },
        "end": {
          "line": 88,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3150,
      "end": 3151,
      "loc": {
        "start": {
          "line": 88,
          "column": 25
        },
        "end": {
          "line": 88,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3168,
      "end": 3176,
      "loc": {
        "start": {
          "line": 89,
          "column": 16
        },
        "end": {
          "line": 89,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3176,
      "end": 3177,
      "loc": {
        "start": {
          "line": 89,
          "column": 24
        },
        "end": {
          "line": 89,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "copy",
      "start": 3177,
      "end": 3181,
      "loc": {
        "start": {
          "line": 89,
          "column": 25
        },
        "end": {
          "line": 89,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3181,
      "end": 3182,
      "loc": {
        "start": {
          "line": 89,
          "column": 29
        },
        "end": {
          "line": 89,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "getArcAngles",
      "start": 3182,
      "end": 3194,
      "loc": {
        "start": {
          "line": 89,
          "column": 30
        },
        "end": {
          "line": 89,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3194,
      "end": 3195,
      "loc": {
        "start": {
          "line": 89,
          "column": 42
        },
        "end": {
          "line": 89,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 3195,
      "end": 3197,
      "loc": {
        "start": {
          "line": 89,
          "column": 43
        },
        "end": {
          "line": 89,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3197,
      "end": 3198,
      "loc": {
        "start": {
          "line": 89,
          "column": 45
        },
        "end": {
          "line": 89,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3198,
      "end": 3199,
      "loc": {
        "start": {
          "line": 89,
          "column": 46
        },
        "end": {
          "line": 89,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mid",
      "start": 3199,
      "end": 3202,
      "loc": {
        "start": {
          "line": 89,
          "column": 47
        },
        "end": {
          "line": 89,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3202,
      "end": 3203,
      "loc": {
        "start": {
          "line": 89,
          "column": 50
        },
        "end": {
          "line": 89,
          "column": 51
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3203,
      "end": 3204,
      "loc": {
        "start": {
          "line": 89,
          "column": 51
        },
        "end": {
          "line": 89,
          "column": 52
        }
      }
    },
    {
      "type": {
        "label": "break",
        "keyword": "break",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "break",
      "start": 3221,
      "end": 3226,
      "loc": {
        "start": {
          "line": 90,
          "column": 16
        },
        "end": {
          "line": 90,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3226,
      "end": 3227,
      "loc": {
        "start": {
          "line": 90,
          "column": 21
        },
        "end": {
          "line": 90,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "case",
        "keyword": "case",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "case",
      "start": 3240,
      "end": 3244,
      "loc": {
        "start": {
          "line": 91,
          "column": 12
        },
        "end": {
          "line": 91,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "CC_Circle",
      "start": 3245,
      "end": 3256,
      "loc": {
        "start": {
          "line": 91,
          "column": 17
        },
        "end": {
          "line": 91,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3256,
      "end": 3257,
      "loc": {
        "start": {
          "line": 91,
          "column": 28
        },
        "end": {
          "line": 91,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3274,
      "end": 3282,
      "loc": {
        "start": {
          "line": 92,
          "column": 16
        },
        "end": {
          "line": 92,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3282,
      "end": 3283,
      "loc": {
        "start": {
          "line": 92,
          "column": 24
        },
        "end": {
          "line": 92,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "copy",
      "start": 3283,
      "end": 3287,
      "loc": {
        "start": {
          "line": 92,
          "column": 25
        },
        "end": {
          "line": 92,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3287,
      "end": 3288,
      "loc": {
        "start": {
          "line": 92,
          "column": 29
        },
        "end": {
          "line": 92,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "gp",
      "start": 3288,
      "end": 3290,
      "loc": {
        "start": {
          "line": 92,
          "column": 30
        },
        "end": {
          "line": 92,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3290,
      "end": 3291,
      "loc": {
        "start": {
          "line": 92,
          "column": 32
        },
        "end": {
          "line": 92,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "center",
      "start": 3291,
      "end": 3297,
      "loc": {
        "start": {
          "line": 92,
          "column": 33
        },
        "end": {
          "line": 92,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3297,
      "end": 3298,
      "loc": {
        "start": {
          "line": 92,
          "column": 39
        },
        "end": {
          "line": 92,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3298,
      "end": 3299,
      "loc": {
        "start": {
          "line": 92,
          "column": 40
        },
        "end": {
          "line": 92,
          "column": 41
        }
      }
    },
    {
      "type": {
        "label": "break",
        "keyword": "break",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "break",
      "start": 3316,
      "end": 3321,
      "loc": {
        "start": {
          "line": 93,
          "column": 16
        },
        "end": {
          "line": 93,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3321,
      "end": 3322,
      "loc": {
        "start": {
          "line": 93,
          "column": 21
        },
        "end": {
          "line": 93,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 3335,
      "end": 3342,
      "loc": {
        "start": {
          "line": 94,
          "column": 12
        },
        "end": {
          "line": 94,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3342,
      "end": 3343,
      "loc": {
        "start": {
          "line": 94,
          "column": 19
        },
        "end": {
          "line": 94,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3360,
      "end": 3368,
      "loc": {
        "start": {
          "line": 95,
          "column": 16
        },
        "end": {
          "line": 95,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3368,
      "end": 3369,
      "loc": {
        "start": {
          "line": 95,
          "column": 24
        },
        "end": {
          "line": 95,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "set",
      "start": 3369,
      "end": 3372,
      "loc": {
        "start": {
          "line": 95,
          "column": 25
        },
        "end": {
          "line": 95,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3372,
      "end": 3373,
      "loc": {
        "start": {
          "line": 95,
          "column": 28
        },
        "end": {
          "line": 95,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 3373,
      "end": 3374,
      "loc": {
        "start": {
          "line": 95,
          "column": 29
        },
        "end": {
          "line": 95,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3374,
      "end": 3375,
      "loc": {
        "start": {
          "line": 95,
          "column": 30
        },
        "end": {
          "line": 95,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 3376,
      "end": 3377,
      "loc": {
        "start": {
          "line": 95,
          "column": 32
        },
        "end": {
          "line": 95,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3377,
      "end": 3378,
      "loc": {
        "start": {
          "line": 95,
          "column": 33
        },
        "end": {
          "line": 95,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 3379,
      "end": 3380,
      "loc": {
        "start": {
          "line": 95,
          "column": 35
        },
        "end": {
          "line": 95,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3380,
      "end": 3381,
      "loc": {
        "start": {
          "line": 95,
          "column": 36
        },
        "end": {
          "line": 95,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3381,
      "end": 3382,
      "loc": {
        "start": {
          "line": 95,
          "column": 37
        },
        "end": {
          "line": 95,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "break",
        "keyword": "break",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "break",
      "start": 3399,
      "end": 3404,
      "loc": {
        "start": {
          "line": 96,
          "column": 16
        },
        "end": {
          "line": 96,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3404,
      "end": 3405,
      "loc": {
        "start": {
          "line": 96,
          "column": 21
        },
        "end": {
          "line": 96,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3414,
      "end": 3415,
      "loc": {
        "start": {
          "line": 97,
          "column": 8
        },
        "end": {
          "line": 97,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "const",
        "keyword": "const",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "const",
      "start": 3424,
      "end": 3429,
      "loc": {
        "start": {
          "line": 98,
          "column": 8
        },
        "end": {
          "line": 98,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "s",
      "start": 3430,
      "end": 3431,
      "loc": {
        "start": {
          "line": 98,
          "column": 14
        },
        "end": {
          "line": 98,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3432,
      "end": 3433,
      "loc": {
        "start": {
          "line": 98,
          "column": 16
        },
        "end": {
          "line": 98,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "graphics",
      "start": 3434,
      "end": 3442,
      "loc": {
        "start": {
          "line": 98,
          "column": 18
        },
        "end": {
          "line": 98,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3442,
      "end": 3443,
      "loc": {
        "start": {
          "line": 98,
          "column": 26
        },
        "end": {
          "line": 98,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "localMesh",
      "start": 3443,
      "end": 3452,
      "loc": {
        "start": {
          "line": 98,
          "column": 27
        },
        "end": {
          "line": 98,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3452,
      "end": 3453,
      "loc": {
        "start": {
          "line": 98,
          "column": 36
        },
        "end": {
          "line": 98,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "scale",
      "start": 3453,
      "end": 3458,
      "loc": {
        "start": {
          "line": 98,
          "column": 37
        },
        "end": {
          "line": 98,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3458,
      "end": 3459,
      "loc": {
        "start": {
          "line": 98,
          "column": 42
        },
        "end": {
          "line": 98,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 3459,
      "end": 3460,
      "loc": {
        "start": {
          "line": 98,
          "column": 43
        },
        "end": {
          "line": 98,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3460,
      "end": 3461,
      "loc": {
        "start": {
          "line": 98,
          "column": 44
        },
        "end": {
          "line": 98,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3470,
      "end": 3478,
      "loc": {
        "start": {
          "line": 99,
          "column": 8
        },
        "end": {
          "line": 99,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3478,
      "end": 3479,
      "loc": {
        "start": {
          "line": 99,
          "column": 16
        },
        "end": {
          "line": 99,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 3479,
      "end": 3480,
      "loc": {
        "start": {
          "line": 99,
          "column": 17
        },
        "end": {
          "line": 99,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "_=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "-=",
      "start": 3481,
      "end": 3483,
      "loc": {
        "start": {
          "line": 99,
          "column": 19
        },
        "end": {
          "line": 99,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "s",
      "start": 3484,
      "end": 3485,
      "loc": {
        "start": {
          "line": 99,
          "column": 22
        },
        "end": {
          "line": 99,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3485,
      "end": 3486,
      "loc": {
        "start": {
          "line": 99,
          "column": 23
        },
        "end": {
          "line": 99,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3495,
      "end": 3503,
      "loc": {
        "start": {
          "line": 100,
          "column": 8
        },
        "end": {
          "line": 100,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3503,
      "end": 3504,
      "loc": {
        "start": {
          "line": 100,
          "column": 16
        },
        "end": {
          "line": 100,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "y",
      "start": 3504,
      "end": 3505,
      "loc": {
        "start": {
          "line": 100,
          "column": 17
        },
        "end": {
          "line": 100,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "_=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "+=",
      "start": 3506,
      "end": 3508,
      "loc": {
        "start": {
          "line": 100,
          "column": 19
        },
        "end": {
          "line": 100,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "s",
      "start": 3509,
      "end": 3510,
      "loc": {
        "start": {
          "line": 100,
          "column": 22
        },
        "end": {
          "line": 100,
          "column": 23
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3510,
      "end": 3511,
      "loc": {
        "start": {
          "line": 100,
          "column": 23
        },
        "end": {
          "line": 100,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "triesLoop",
      "start": 3520,
      "end": 3529,
      "loc": {
        "start": {
          "line": 101,
          "column": 8
        },
        "end": {
          "line": 101,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ":",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3529,
      "end": 3530,
      "loc": {
        "start": {
          "line": 101,
          "column": 17
        },
        "end": {
          "line": 101,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3531,
      "end": 3534,
      "loc": {
        "start": {
          "line": 101,
          "column": 19
        },
        "end": {
          "line": 101,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3535,
      "end": 3536,
      "loc": {
        "start": {
          "line": 101,
          "column": 23
        },
        "end": {
          "line": 101,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3536,
      "end": 3539,
      "loc": {
        "start": {
          "line": 101,
          "column": 24
        },
        "end": {
          "line": 101,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tries",
      "start": 3540,
      "end": 3545,
      "loc": {
        "start": {
          "line": 101,
          "column": 28
        },
        "end": {
          "line": 101,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3546,
      "end": 3547,
      "loc": {
        "start": {
          "line": 101,
          "column": 34
        },
        "end": {
          "line": 101,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0,
      "start": 3548,
      "end": 3549,
      "loc": {
        "start": {
          "line": 101,
          "column": 36
        },
        "end": {
          "line": 101,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3549,
      "end": 3550,
      "loc": {
        "start": {
          "line": 101,
          "column": 37
        },
        "end": {
          "line": 101,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tries",
      "start": 3551,
      "end": 3556,
      "loc": {
        "start": {
          "line": 101,
          "column": 39
        },
        "end": {
          "line": 101,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 3557,
      "end": 3558,
      "loc": {
        "start": {
          "line": 101,
          "column": 45
        },
        "end": {
          "line": 101,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 10,
      "start": 3559,
      "end": 3561,
      "loc": {
        "start": {
          "line": 101,
          "column": 47
        },
        "end": {
          "line": 101,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3561,
      "end": 3562,
      "loc": {
        "start": {
          "line": 101,
          "column": 49
        },
        "end": {
          "line": 101,
          "column": 50
        }
      }
    },
    {
      "type": {
        "label": "++/--",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": true,
        "binop": null
      },
      "value": "++",
      "start": 3563,
      "end": 3565,
      "loc": {
        "start": {
          "line": 101,
          "column": 51
        },
        "end": {
          "line": 101,
          "column": 53
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "tries",
      "start": 3565,
      "end": 3570,
      "loc": {
        "start": {
          "line": 101,
          "column": 53
        },
        "end": {
          "line": 101,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3570,
      "end": 3571,
      "loc": {
        "start": {
          "line": 101,
          "column": 58
        },
        "end": {
          "line": 101,
          "column": 59
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3572,
      "end": 3573,
      "loc": {
        "start": {
          "line": 101,
          "column": 60
        },
        "end": {
          "line": 101,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 3586,
      "end": 3589,
      "loc": {
        "start": {
          "line": 102,
          "column": 12
        },
        "end": {
          "line": 102,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3590,
      "end": 3591,
      "loc": {
        "start": {
          "line": 102,
          "column": 16
        },
        "end": {
          "line": 102,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 3591,
      "end": 3594,
      "loc": {
        "start": {
          "line": 102,
          "column": 17
        },
        "end": {
          "line": 102,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePosition",
      "start": 3595,
      "end": 3610,
      "loc": {
        "start": {
          "line": 102,
          "column": 21
        },
        "end": {
          "line": 102,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 3611,
      "end": 3613,
      "loc": {
        "start": {
          "line": 102,
          "column": 37
        },
        "end": {
          "line": 102,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3614,
      "end": 3618,
      "loc": {
        "start": {
          "line": 102,
          "column": 40
        },
        "end": {
          "line": 102,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3618,
      "end": 3619,
      "loc": {
        "start": {
          "line": 102,
          "column": 44
        },
        "end": {
          "line": 102,
          "column": 45
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePositions",
      "start": 3619,
      "end": 3635,
      "loc": {
        "start": {
          "line": 102,
          "column": 45
        },
        "end": {
          "line": 102,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3635,
      "end": 3636,
      "loc": {
        "start": {
          "line": 102,
          "column": 61
        },
        "end": {
          "line": 102,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": "if",
        "keyword": "if",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "if",
      "start": 3653,
      "end": 3655,
      "loc": {
        "start": {
          "line": 103,
          "column": 16
        },
        "end": {
          "line": 103,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3656,
      "end": 3657,
      "loc": {
        "start": {
          "line": 103,
          "column": 19
        },
        "end": {
          "line": 103,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3657,
      "end": 3665,
      "loc": {
        "start": {
          "line": 103,
          "column": 20
        },
        "end": {
          "line": 103,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3665,
      "end": 3666,
      "loc": {
        "start": {
          "line": 103,
          "column": 28
        },
        "end": {
          "line": 103,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "distanceToSquared",
      "start": 3666,
      "end": 3683,
      "loc": {
        "start": {
          "line": 103,
          "column": 29
        },
        "end": {
          "line": 103,
          "column": 46
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3683,
      "end": 3684,
      "loc": {
        "start": {
          "line": 103,
          "column": 46
        },
        "end": {
          "line": 103,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePosition",
      "start": 3684,
      "end": 3699,
      "loc": {
        "start": {
          "line": 103,
          "column": 47
        },
        "end": {
          "line": 103,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3699,
      "end": 3700,
      "loc": {
        "start": {
          "line": 103,
          "column": 62
        },
        "end": {
          "line": 103,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": "</>",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 7,
        "updateContext": null
      },
      "value": "<",
      "start": 3701,
      "end": 3702,
      "loc": {
        "start": {
          "line": 103,
          "column": 64
        },
        "end": {
          "line": 103,
          "column": 65
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "s",
      "start": 3703,
      "end": 3704,
      "loc": {
        "start": {
          "line": 103,
          "column": 66
        },
        "end": {
          "line": 103,
          "column": 67
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 3705,
      "end": 3706,
      "loc": {
        "start": {
          "line": 103,
          "column": 68
        },
        "end": {
          "line": 103,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "s",
      "start": 3707,
      "end": 3708,
      "loc": {
        "start": {
          "line": 103,
          "column": 70
        },
        "end": {
          "line": 103,
          "column": 71
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3708,
      "end": 3709,
      "loc": {
        "start": {
          "line": 103,
          "column": 71
        },
        "end": {
          "line": 103,
          "column": 72
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3710,
      "end": 3711,
      "loc": {
        "start": {
          "line": 103,
          "column": 73
        },
        "end": {
          "line": 103,
          "column": 74
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3732,
      "end": 3740,
      "loc": {
        "start": {
          "line": 104,
          "column": 20
        },
        "end": {
          "line": 104,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3740,
      "end": 3741,
      "loc": {
        "start": {
          "line": 104,
          "column": 28
        },
        "end": {
          "line": 104,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "x",
      "start": 3741,
      "end": 3742,
      "loc": {
        "start": {
          "line": 104,
          "column": 29
        },
        "end": {
          "line": 104,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "_=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "+=",
      "start": 3743,
      "end": 3745,
      "loc": {
        "start": {
          "line": 104,
          "column": 31
        },
        "end": {
          "line": 104,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "s",
      "start": 3746,
      "end": 3747,
      "loc": {
        "start": {
          "line": 104,
          "column": 34
        },
        "end": {
          "line": 104,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "*",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": 10,
        "updateContext": null
      },
      "value": "*",
      "start": 3748,
      "end": 3749,
      "loc": {
        "start": {
          "line": 104,
          "column": 36
        },
        "end": {
          "line": 104,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3750,
      "end": 3751,
      "loc": {
        "start": {
          "line": 104,
          "column": 38
        },
        "end": {
          "line": 104,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 1,
      "start": 3751,
      "end": 3752,
      "loc": {
        "start": {
          "line": 104,
          "column": 39
        },
        "end": {
          "line": 104,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "+/-",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": true,
        "postfix": false,
        "binop": 9,
        "updateContext": null
      },
      "value": "+",
      "start": 3753,
      "end": 3754,
      "loc": {
        "start": {
          "line": 104,
          "column": 41
        },
        "end": {
          "line": 104,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": "num",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": 0.000001,
      "start": 3755,
      "end": 3759,
      "loc": {
        "start": {
          "line": 104,
          "column": 43
        },
        "end": {
          "line": 104,
          "column": 47
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3759,
      "end": 3760,
      "loc": {
        "start": {
          "line": 104,
          "column": 47
        },
        "end": {
          "line": 104,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3760,
      "end": 3761,
      "loc": {
        "start": {
          "line": 104,
          "column": 48
        },
        "end": {
          "line": 104,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "continue",
        "keyword": "continue",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "continue",
      "start": 3782,
      "end": 3790,
      "loc": {
        "start": {
          "line": 105,
          "column": 20
        },
        "end": {
          "line": 105,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "triesLoop",
      "start": 3791,
      "end": 3800,
      "loc": {
        "start": {
          "line": 105,
          "column": 29
        },
        "end": {
          "line": 105,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3800,
      "end": 3801,
      "loc": {
        "start": {
          "line": 105,
          "column": 38
        },
        "end": {
          "line": 105,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3818,
      "end": 3819,
      "loc": {
        "start": {
          "line": 106,
          "column": 16
        },
        "end": {
          "line": 106,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "break",
        "keyword": "break",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "break",
      "start": 3832,
      "end": 3837,
      "loc": {
        "start": {
          "line": 107,
          "column": 12
        },
        "end": {
          "line": 107,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3837,
      "end": 3838,
      "loc": {
        "start": {
          "line": 107,
          "column": 17
        },
        "end": {
          "line": 107,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3847,
      "end": 3848,
      "loc": {
        "start": {
          "line": 108,
          "column": 8
        },
        "end": {
          "line": 108,
          "column": 9
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3857,
      "end": 3861,
      "loc": {
        "start": {
          "line": 109,
          "column": 8
        },
        "end": {
          "line": 109,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3861,
      "end": 3862,
      "loc": {
        "start": {
          "line": 109,
          "column": 12
        },
        "end": {
          "line": 109,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePositions",
      "start": 3862,
      "end": 3878,
      "loc": {
        "start": {
          "line": 109,
          "column": 13
        },
        "end": {
          "line": 109,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3878,
      "end": 3879,
      "loc": {
        "start": {
          "line": 109,
          "column": 29
        },
        "end": {
          "line": 109,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "add",
      "start": 3879,
      "end": 3882,
      "loc": {
        "start": {
          "line": 109,
          "column": 30
        },
        "end": {
          "line": 109,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3882,
      "end": 3883,
      "loc": {
        "start": {
          "line": 109,
          "column": 33
        },
        "end": {
          "line": 109,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "position",
      "start": 3883,
      "end": 3891,
      "loc": {
        "start": {
          "line": 109,
          "column": 34
        },
        "end": {
          "line": 109,
          "column": 42
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3891,
      "end": 3892,
      "loc": {
        "start": {
          "line": 109,
          "column": 42
        },
        "end": {
          "line": 109,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3892,
      "end": 3893,
      "loc": {
        "start": {
          "line": 109,
          "column": 43
        },
        "end": {
          "line": 109,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3898,
      "end": 3899,
      "loc": {
        "start": {
          "line": 110,
          "column": 4
        },
        "end": {
          "line": 110,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateAll",
      "start": 3905,
      "end": 3914,
      "loc": {
        "start": {
          "line": 112,
          "column": 4
        },
        "end": {
          "line": 112,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3914,
      "end": 3915,
      "loc": {
        "start": {
          "line": 112,
          "column": 13
        },
        "end": {
          "line": 112,
          "column": 14
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3915,
      "end": 3919,
      "loc": {
        "start": {
          "line": 112,
          "column": 14
        },
        "end": {
          "line": 112,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3920,
      "end": 3921,
      "loc": {
        "start": {
          "line": 112,
          "column": 19
        },
        "end": {
          "line": 112,
          "column": 20
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3922,
      "end": 3926,
      "loc": {
        "start": {
          "line": 112,
          "column": 21
        },
        "end": {
          "line": 112,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3926,
      "end": 3927,
      "loc": {
        "start": {
          "line": 112,
          "column": 25
        },
        "end": {
          "line": 112,
          "column": 26
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3927,
      "end": 3931,
      "loc": {
        "start": {
          "line": 112,
          "column": 26
        },
        "end": {
          "line": 112,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3931,
      "end": 3932,
      "loc": {
        "start": {
          "line": 112,
          "column": 30
        },
        "end": {
          "line": 112,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3933,
      "end": 3934,
      "loc": {
        "start": {
          "line": 112,
          "column": 32
        },
        "end": {
          "line": 112,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3943,
      "end": 3947,
      "loc": {
        "start": {
          "line": 113,
          "column": 8
        },
        "end": {
          "line": 113,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3947,
      "end": 3948,
      "loc": {
        "start": {
          "line": 113,
          "column": 12
        },
        "end": {
          "line": 113,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3948,
      "end": 3952,
      "loc": {
        "start": {
          "line": 113,
          "column": 13
        },
        "end": {
          "line": 113,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "=",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": true,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "=",
      "start": 3953,
      "end": 3954,
      "loc": {
        "start": {
          "line": 113,
          "column": 18
        },
        "end": {
          "line": 113,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "mode",
      "start": 3955,
      "end": 3959,
      "loc": {
        "start": {
          "line": 113,
          "column": 20
        },
        "end": {
          "line": 113,
          "column": 24
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3959,
      "end": 3960,
      "loc": {
        "start": {
          "line": 113,
          "column": 24
        },
        "end": {
          "line": 113,
          "column": 25
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 3969,
      "end": 3973,
      "loc": {
        "start": {
          "line": 114,
          "column": 8
        },
        "end": {
          "line": 114,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3973,
      "end": 3974,
      "loc": {
        "start": {
          "line": 114,
          "column": 12
        },
        "end": {
          "line": 114,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "visiblePositions",
      "start": 3974,
      "end": 3990,
      "loc": {
        "start": {
          "line": 114,
          "column": 13
        },
        "end": {
          "line": 114,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3990,
      "end": 3991,
      "loc": {
        "start": {
          "line": 114,
          "column": 29
        },
        "end": {
          "line": 114,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "clear",
      "start": 3991,
      "end": 3996,
      "loc": {
        "start": {
          "line": 114,
          "column": 30
        },
        "end": {
          "line": 114,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3996,
      "end": 3997,
      "loc": {
        "start": {
          "line": 114,
          "column": 35
        },
        "end": {
          "line": 114,
          "column": 36
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 3997,
      "end": 3998,
      "loc": {
        "start": {
          "line": 114,
          "column": 36
        },
        "end": {
          "line": 114,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 3998,
      "end": 3999,
      "loc": {
        "start": {
          "line": 114,
          "column": 37
        },
        "end": {
          "line": 114,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "for",
        "keyword": "for",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": true,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "for",
      "start": 4008,
      "end": 4011,
      "loc": {
        "start": {
          "line": 115,
          "column": 8
        },
        "end": {
          "line": 115,
          "column": 11
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4012,
      "end": 4013,
      "loc": {
        "start": {
          "line": 115,
          "column": 12
        },
        "end": {
          "line": 115,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "let",
        "keyword": "let",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "let",
      "start": 4013,
      "end": 4016,
      "loc": {
        "start": {
          "line": 115,
          "column": 13
        },
        "end": {
          "line": 115,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 4017,
      "end": 4019,
      "loc": {
        "start": {
          "line": 115,
          "column": 17
        },
        "end": {
          "line": 115,
          "column": 19
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "of",
      "start": 4020,
      "end": 4022,
      "loc": {
        "start": {
          "line": 115,
          "column": 20
        },
        "end": {
          "line": 115,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4023,
      "end": 4027,
      "loc": {
        "start": {
          "line": 115,
          "column": 23
        },
        "end": {
          "line": 115,
          "column": 27
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4027,
      "end": 4028,
      "loc": {
        "start": {
          "line": 115,
          "column": 27
        },
        "end": {
          "line": 115,
          "column": 28
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "constraints",
      "start": 4028,
      "end": 4039,
      "loc": {
        "start": {
          "line": 115,
          "column": 28
        },
        "end": {
          "line": 115,
          "column": 39
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4039,
      "end": 4040,
      "loc": {
        "start": {
          "line": 115,
          "column": 39
        },
        "end": {
          "line": 115,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4053,
      "end": 4057,
      "loc": {
        "start": {
          "line": 116,
          "column": 12
        },
        "end": {
          "line": 116,
          "column": 16
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4057,
      "end": 4058,
      "loc": {
        "start": {
          "line": 116,
          "column": 16
        },
        "end": {
          "line": 116,
          "column": 17
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "updateConstraint",
      "start": 4058,
      "end": 4074,
      "loc": {
        "start": {
          "line": 116,
          "column": 17
        },
        "end": {
          "line": 116,
          "column": 33
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4074,
      "end": 4075,
      "loc": {
        "start": {
          "line": 116,
          "column": 33
        },
        "end": {
          "line": 116,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "new",
        "keyword": "new",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "new",
      "start": 4075,
      "end": 4078,
      "loc": {
        "start": {
          "line": 116,
          "column": 34
        },
        "end": {
          "line": 116,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "Ccref",
      "start": 4079,
      "end": 4084,
      "loc": {
        "start": {
          "line": 116,
          "column": 38
        },
        "end": {
          "line": 116,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4084,
      "end": 4085,
      "loc": {
        "start": {
          "line": 116,
          "column": 43
        },
        "end": {
          "line": 116,
          "column": 44
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4085,
      "end": 4089,
      "loc": {
        "start": {
          "line": 116,
          "column": 44
        },
        "end": {
          "line": 116,
          "column": 48
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4089,
      "end": 4090,
      "loc": {
        "start": {
          "line": 116,
          "column": 48
        },
        "end": {
          "line": 116,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 4090,
      "end": 4098,
      "loc": {
        "start": {
          "line": 116,
          "column": 49
        },
        "end": {
          "line": 116,
          "column": 57
        }
      }
    },
    {
      "type": {
        "label": ",",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4098,
      "end": 4099,
      "loc": {
        "start": {
          "line": 116,
          "column": 57
        },
        "end": {
          "line": 116,
          "column": 58
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "id",
      "start": 4100,
      "end": 4102,
      "loc": {
        "start": {
          "line": 116,
          "column": 59
        },
        "end": {
          "line": 116,
          "column": 61
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4102,
      "end": 4103,
      "loc": {
        "start": {
          "line": 116,
          "column": 61
        },
        "end": {
          "line": 116,
          "column": 62
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4103,
      "end": 4104,
      "loc": {
        "start": {
          "line": 116,
          "column": 62
        },
        "end": {
          "line": 116,
          "column": 63
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4104,
      "end": 4105,
      "loc": {
        "start": {
          "line": 116,
          "column": 63
        },
        "end": {
          "line": 116,
          "column": 64
        }
      }
    },
    {
      "type": {
        "label": "this",
        "keyword": "this",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "this",
      "start": 4114,
      "end": 4118,
      "loc": {
        "start": {
          "line": 117,
          "column": 8
        },
        "end": {
          "line": 117,
          "column": 12
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4118,
      "end": 4119,
      "loc": {
        "start": {
          "line": 117,
          "column": 12
        },
        "end": {
          "line": 117,
          "column": 13
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "sketcher",
      "start": 4119,
      "end": 4127,
      "loc": {
        "start": {
          "line": 117,
          "column": 13
        },
        "end": {
          "line": 117,
          "column": 21
        }
      }
    },
    {
      "type": {
        "label": ".",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4127,
      "end": 4128,
      "loc": {
        "start": {
          "line": 117,
          "column": 21
        },
        "end": {
          "line": 117,
          "column": 22
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "refresh",
      "start": 4128,
      "end": 4135,
      "loc": {
        "start": {
          "line": 117,
          "column": 22
        },
        "end": {
          "line": 117,
          "column": 29
        }
      }
    },
    {
      "type": {
        "label": "(",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4135,
      "end": 4136,
      "loc": {
        "start": {
          "line": 117,
          "column": 29
        },
        "end": {
          "line": 117,
          "column": 30
        }
      }
    },
    {
      "type": {
        "label": ")",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4136,
      "end": 4137,
      "loc": {
        "start": {
          "line": 117,
          "column": 30
        },
        "end": {
          "line": 117,
          "column": 31
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4137,
      "end": 4138,
      "loc": {
        "start": {
          "line": 117,
          "column": 31
        },
        "end": {
          "line": 117,
          "column": 32
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4143,
      "end": 4144,
      "loc": {
        "start": {
          "line": 118,
          "column": 4
        },
        "end": {
          "line": 118,
          "column": 5
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 4145,
      "end": 4146,
      "loc": {
        "start": {
          "line": 119,
          "column": 0
        },
        "end": {
          "line": 119,
          "column": 1
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 4147,
      "end": 4147,
      "loc": {
        "start": {
          "line": 120,
          "column": 0
        },
        "end": {
          "line": 120,
          "column": 0
        }
      }
    }
  ]
}